給定乙個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
3
/ \9 20
/ \15 7
返回它的最大深度 3 。
分析這個問題, 我們可以採用divide-and-conquer思想. 分治法的思想在這篇文章中divide and conquer思想及實際應用有介紹. 將原二叉樹分解為矮一層的左右子樹, 通過計算子樹的最大深度, 以獲取原樹的最大深度, 即可得到問題的解.
我們直接套用分治法的步驟來尋找解決問題的方法.
按照分治法的思想, 分成三步來解決問題:
devide: 將原二叉樹分解為兩個子樹, 左二叉樹和右二叉樹.
conquer: 遞迴地求解左二叉樹的最大深度和右二叉樹的最大深度.
combine: 原始二叉樹的最大深度等於左子樹最大深度與右子樹最大深度的最大值 + 1.
按照上面分治法的分析過程,直接寫出**很簡單.
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
int leftdepth =
maxdepth
(root-
>left)
;int rightdepth =
maxdepth
(root-
>right)
;return
max(leftdepth, rightdepth)+1
;}};
力扣 104 二叉樹的最大深度
一 題目描述 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 二 解題思路 求二叉樹深度 max 左子樹最大深度,右...
力扣 104 二叉樹的最大深度
題目 給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最大深度 3 題解 definition for a binary tree...
力扣104 二叉樹的最大深度
給定乙個二叉樹,找出其最大深度。二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 返回它的最大深度 3 遞迴計算左右子樹的高度,樹的高度等於左右子樹的最大高度加一 1 2 definition f...