题解 | #二叉树的深度#

二叉树的深度

http://www.nowcoder.com/practice/435fb86331474282a3499955f0a41e8b

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }
}
*/
// 使用递归的方法,迭代操作:比较和加一,终止条件:节点为空
// 在每个节点处比较一次并加一,因此时间复杂度为O(n),递归是一个栈,因此最坏情况的空间复杂度是O(n)

public class Solution {
    public int TreeDepth(TreeNode root) {
    // 注意:此处判断节点是否为空很重要,给此函数赋予了处理空节点的能力,因此可以递归到终止时可以不因为空节点而增加代码逻辑的复杂度
        if(root == null)
            return 0;
        int leftnum = TreeDepth(root.left);
        int rightnum = TreeDepth(root.right);
        if(leftnum >= rightnum)
            return leftnum+1;
        else
            return rightnum+1;
    }
}
全部评论

相关推荐

点赞 评论 收藏
转发
头像
不愿透露姓名的神秘牛友
03-13 10:56
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务