LeetCode--404--左叶子之和
Posted Assange
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode--404--左叶子之和相关的知识,希望对你有一定的参考价值。
问题描述:
计算给定二叉树的所有左叶子之和。
示例:
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--左叶子之和的主要内容,如果未能解决你的问题,请参考以下文章
leetcode 404. 左叶子之和(Sum of Left Leaves)