2017-05-06 104 views
0

我想找到二叉樹的最大深度並使用遞歸方法。它看起來像這樣:大小爲1的二叉樹的最大深度

public int depth(TreeNode root) { 
    if(root==null) return 0; 
    int leftVal=maxDepth(root.left); 
    int rightVal=maxDepth(root.right); 
    return 1 + Math.max(leftVal,rightVal); 
} 

現在,如果只有一個節點(根),它會返回1.但並不是節點0與1的高度,因爲它是根有多深?或者樹的最大深度不同於單個節點?

回答

1

深度不是樹的度量,而是樹的節點。

就你而言,節點的maxDepth對我來說聽起來像是該節點的高度。

  • 節點的深度是從根節點到節點的邊數。
  • 節點的高度是從節點到最深葉的邊的數量。
  • 樹的高度是根的高度。

考慮這一形象:

Depth and Height

+0

所以有不作爲最大深度這樣的事情? – user081608

+0

據我瞭解,節點的深度只受其父節點及其以上節點的影響,而不受節點的影響。所以我認爲,在你的例子中,最大深度的概念實際上只是一個節點的高度,與它的深度無關(在圖中考慮,具有相同高度的節點可以具有不同的深度,反之亦然) 。 –