剑指Offer输入一棵二叉树,求该树的深度。

非递归:
利用队列存储二叉树每一行的结点,然后弹出,深度加一
import java.util.LinkedList;public class Solution {
    public int TreeDepth(TreeNode root) {
        if (root == null) 
            return 0;
        int d = 0, count = 0, nextCount = 1;
        LinkedList<TreeNode> queue = new LinkedList<>();
        queue.add(root);
        while(queue.size() != 0){
            TreeNode node = queue.poll();
            count++;
            if(node.left != null){
                queue.add(node.left);
            }
            if(node.right != null){
                queue.add(node.right);
            }
            if(count == nextCount){
                d++;
                count = 0;
                nextCount = queue.size();
            }
        }
        return d;
    }
}
递归:
递归每个父节点的左右子结点
public int TreeDepth(TreeNode root) {    if(root==null)
        return 0;
    return Math.max(TreeDepth(root.left), TreeDepth(root.right)) + 1;
}
以上是 剑指Offer输入一棵二叉树,求该树的深度。 的全部内容, 来源链接: utcz.com/z/512911.html







