最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。
树的深度 = 左子树的深度和右子树深度中最大者 + 1
function TreeDepth(pRoot) {
//树的深度=左子树的深度和右子树深度中最大者+1
if (pRoot === null)
return 0;
var leftDep = TreeDepth(pRoot.left);
var rightDep = TreeDepth(pRoot.right);
return Math.max(leftDep, rightDep) + 1;
}
详细解释:
-
如果一棵树只有一个结点,它的深度为1。
-
如果根结点只有左子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度应该是其右子树的深度加1。
-
如果既有右子树又有左子树,那该树的深度就是其左、右子树深度的较大值再加1。