class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 這道題用深搜很容易就做的出來,遍歷每一個節點,
# 但是需要注意的是節點分支為空的時候應該區分開來,
class Solution:
def minDepth(self, root: TreeNode) -> int:
return self.dfs(root)
def dfs(self,root):
# 當節點為空,回傳0
if not root:
return 0
# 遞回求左子樹的節點深度
left = self.dfs(root.left)
# 遞回求右子樹的節點深度
right = self.dfs(root.right)
# 注意這里需要判斷存不存在左右節點,
# 不能直接回傳left,right中的小的那個,
if left != 0 and right == 0:
return left + 1
elif right != 0 and left == 0:
return right + 1
# 最后一種情況是左右節點都存在,所以要回傳兩個里邊最小的那個
else :
return min(left,right) + 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/36410.html
標籤:Python
