이 진 트 리 를 지정 하여 가장 큰 깊이 를 찾 아 자바 재 귀 실현

/**
 *         ,      
 */
public class MaxDeepOfBinaryTree {


    /**
     *             
     * @param root    
     * @return       
     */
    public static int getHeight(BinaryTree root){
        //         0
        if(root == null){
            return 0;
        //              ,      
        }else {
            int leftTreeHeight = getHeight(root.left);
            int rightTreeHeight = getHeight(root.right);
            //         ,        
//            int x = leftTreeHeight > rightTreeHeight?leftTreeHeight:rightTreeHeight;
            return Math.max(leftTreeHeight, rightTreeHeight) + 1;
        }

    }


    public static void main(String[] args){
        BinaryTree head  = new BinaryTree(1);
        BinaryTree left  = new BinaryTree(2);
        BinaryTree right  = new BinaryTree(3);
        BinaryTree left01  = new BinaryTree(4);
        BinaryTree right01  = new BinaryTree(5);
        head.left = left;
        head.right = right;
        left.left = left01;
        left.right = right01;

        System.out.println(getHeight(head));
        System.out.println("-----------");
        //  3
    }
}


//     
class BinaryTree{
    int value;
    BinaryTree left;
    BinaryTree right;

    public BinaryTree(int value){
        this.value = value;
    }
}

좋은 웹페이지 즐겨찾기