剑指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 }