輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。這道題目除了順序遍歷樹的所有路徑,儲存路徑長度最大的值之外,還可以利用動態規劃的思想。
如果乙個結點只有左子節點,沒有右子結點,那麼以這個結點作為根結點的樹,它的深度就是左子結點的深度+1;同理,如果乙個結點只有右子節點,沒有左子結點,那麼以這個結點作為根結點的樹,它的深度就是右子結點的深度+1。
到這裡我們就用遞迴的思想分析完了題目,狀態轉移方程有了:樹的深度 = max(左結點深度,右結點深度)+1。
不過根據題目的特點,這個問題無法反向利利用迴圈完成。
**如下:
import org.junit.test;
//class treenode
////}
public
class
solution1
int left =
treedepth
(root.left)
;int right =
treedepth
(root.right)
;return left > right ? left +
1: right +1;
}@test
public
void
test()
}
二叉樹的深度 二叉樹的深度
題目描述輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點 含根 葉結點 形成樹的一條路徑,最長路徑的長度為樹的深度。及測試用例 單步除錯檢視過程 public class solution19 拿到左子樹的最大深度 int leftdep treedepth root.left 拿到右子...
二叉樹的深度 二叉樹的深度 二叉樹最大寬度
題目 輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點 含根 葉節點 形成樹的一條路徑,最長路徑的長度為樹的深度。例如 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 根節點加上左右子樹的最大深度就是樹的最大深度。如下 class solution ...
二叉樹之 二叉樹深度
二叉樹深度 獲取最大深度 public static int getmaxdepth treenode root 二叉樹寬度 使用佇列,層次遍歷二叉樹。在上一層遍歷完成後,下一層的所有節點已經放到佇列中,此時佇列中的元素個數就是下一層的寬度。以此類推,依次遍歷下一層即可求出二叉樹的最大寬度 獲取最大...