剑指offer:二叉树的深度

1、题目描述:

输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。

2、解题思路:

(1)递归终止条件:空树高度为0;

(2)递归主体:递归运算根节点的左右子树,取左右子树中深度最大值+1。

3、JavaScript实现:

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function TreeDepth(pRoot)
{
    // write code here
    // 空树高度为0
    if(pRoot === null){
        return 0;
    }
    var leftLen = TreeDepth(pRoot.left);
    var rightLen = TreeDepth(pRoot.right);
    // 从根节点到叶子节点的最长路径的长度
    return leftLen > rightLen ? leftLen + 1 : rightLen + 1
}

 

posted @ 2017-03-26 23:02  一叶芝秋  阅读(143)  评论(0编辑  收藏  举报