二叉树深度
递归法
解法一
function TreeDepth(pRoot)
{
return TreeWalk(pRoot,0)
}
function TreeWalk(root,deep){
if(root){
return Math.max(TreeWalk(root.left,deep+1),TreeWalk(root.right,deep+1))
}
else return deep
}解法二
function TreeDepth(pRoot)
{
if(!pRoot)return 0
return Math.max(TreeDepth(pRoot.left)+1,TreeDepth(pRoot.right)+1)
}非递归解法
function TreeDepth(root){
if(root == null)return 0;
let level = [root]
let result = 0;
while(level.length){
result++
let newLevel = []
for(let i = 0; i < level.length;i++){
if(level[i].left)newLevel.push(level[i].left);
if(level[i].right)newLevel.push(level[i].right);
}
level = newLevel;
}
return result;
}
京公网安备 11010502036488号