111. 二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點。
示例:給定二叉樹 [3,9,20,null,null,15,7],
3
/ \9 20
/ \
15 7
返回它的最小深度 2.
這道題會有一種特殊情況就是單變二叉樹,這樣的話就不能簡單的使用ans = min(solve(root.left), solve(root.right)) + 1,因為單邊,另一邊的值一直為1,這樣求min,算出來的最小深度不對,所以只有分開單邊的情況討論。即一邊為空,就遞迴另一邊。
# definition for a binary tree node.
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class
solution
:def
mindepth
(self, root: treenode)
->
int:
ifnot root:
return
0def
solve
(root):if
not root:
return0if
not root.right:
#這是兩種單邊的情況,需要單獨談論,單邊就不需比較,只對另一邊求解。
ans = solve(root.left)+1
elif
not root.left:
ans = solve(root.right)+1
else
:#節點左右兩邊都有值,所以需要比大小
ans =
min(solve(root.left)
, solve(root.right))+
1return ans
return solve(root)
leetcode 111 二叉樹的最小深度
題目描述 給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回它的最小深度 2.思路 採用後序遍歷,當前結點的深度最小深度等於左右子樹較小深...
LeetCode111 二叉樹的最小深度
解析 求二叉樹的最小深度,即求從根節點到任一子節點,深度的最小值。本題類似求二叉樹的最大深度,都是用遞迴求解。二叉樹的最大深度 分別求出根節點左孩子和右孩子的深度,然後將兩者中較大值加1返回即可。同樣的,求解二叉樹的最小深度,我們要比較兩者中的較小值加1返回。但還有一點要注意,就是如果一棵二叉樹只有...
LeetCode 111 二叉樹的最小深度
給定乙個二叉樹,找出其最小深度。最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。說明 葉子節點是指沒有子節點的節點。示例 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回它的最小深度 2.如果節點是空,那麼返回0 如果節點左右子樹都為空,那麼返回1 如果節...