每日一題20201205(404. 左葉子之和)
阿新 • • 發佈:2020-12-05
404. 左葉子之和
思路
如果這題要求的是求所有葉子節點的和,那是不是很好做了呢?
其實這個是一樣的,我們現在想要的就是求出左葉子,那麼在求是否是葉子節點的時候,設立一個標誌位就可以知道他是不是左葉子了。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def sumOfLeftLeaves(self, root: TreeNode) -> int: return self.getLeaf(root) def getLeaf(self, root, left=False): # 如果root是None,那麼說明沒有值了,直接返回0 if root is not None: # 如果root.left是None並且root.right也是None # 這裡就說明他是葉子節點了,但是我們還得判斷是否是左葉子 # getLeaf的left引數就是用來判斷他是否是左葉子的 if root.left is None and root.right is None and left: return root.val else: # 如果不是葉子節點,那麼遞迴繼續往下尋找,並且找左子樹的時候left為True # 這樣如果left是葉子節點的話,那麼他就是左葉子了 return self.getLeaf(root.left, True) + self.getLeaf(root.right) return 0