LeetCode--404--左葉子之和
阿新 • • 發佈:2018-09-30
color div 依次 lee bject height recursive back nbsp
問題描述:
計算給定二叉樹的所有左葉子之和。
示例:
3 / 9 20 / 15 7 在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24
方法:recursive
1 class Solution(object): 2 def sumOfLeftLeaves(self, root): 3 """ 4 :type root: TreeNode 5 :rtype: int 6 """ 7 res = 0 8 if not root:9 return 0 10 if root.left and not root.left.left and not root.left.right:#左孩子的左孩子為空並且左孩子的右孩子為空 11 return root.left.val + self.sumOfLeftLeaves(root.right) 12 return self.sumOfLeftLeaves(root.left) + self.sumOfLeftLeaves(root.right)#遍歷左右子樹以尋找左葉子
官方:
依次遍歷7,6,9,5,8,1,3,2
1 class Solution(object): 2 def sumOfLeftLeaves(self, root): 3 """ 4 :type root: TreeNode 5 :rtype: int 6 """ 7 if root == None: 8 return 0 9 sum = 0 10 nodes = list() 11 nodes.append(root) 12 13 while nodes:14 node = nodes.pop() 15 if node.left: 16 if node.left.left == None and node.left.right == None: 17 sum += node.left.val 18 else: 19 nodes.append(node.left) 20 if node.right: 21 nodes.append(node.right) 22 return sum
2018-09-30 15:02:39
LeetCode--404--左葉子之和