二叉树的最大深度指的是从根节点到最远子节点的长度。
function maxDepth(root) {
if(root ==
null){
return 0;
}
else if(root.left ==
null && root.right ==
null){
return 1
}
else{
var leftMaxLen =
arguments.callee(root.left);
var rightMaxLen =
arguments.callee(root.right);
return leftMaxLen > rightMaxLen ? leftMaxLen +
1 : rightMaxLen +
1
}
};
二叉树的最小深度:根节点到最近子节点的长度
function minDepth(root) {
if(root ==
null){
return 0;
}
else if(root.left ==
null && root.right ==
null){
return 1
}
else{
var leftMinLen =
arguments.callee(root.left);
var rightMinLen =
arguments.callee(root.right);
if(root.left ==
null){
return rightMinLen +
1;
}
else if(root.right ==
null){
return leftMinLen +
1;
}
else{
return leftMinLen > rightMinLen ? rightMinLen +
1 : leftMinLen +
1
}
}
};
求最小深度的时候,有可能存在斜树的情况,即没有左子树或者是右子树。解决办法是左(右)子树为空时输出右(左)子树的深度,只有两者都不为空时,输出两者之间的最小值。
转载请注明原文地址: https://ju.6miu.com/read-3333.html