leetcode(404):Sum of Left Leaves
2018-03-04 11:36
423 查看
题目:Find the sum of all left leaves in a given binary tree.
example:
3
/ \
9 20
/ \
15 7
There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
题目分析:求所有左叶子节点的和,然后判断是否为左叶子节点,在这个地方容易出现的问题:第一,在于单个节点的情况的漏判;第二是对于左叶子节点的判断,不能按照叶子节点的判断来走,必须按照左叶子节点的判断来处理;第三是对于如何计数和的处理,这个也需要仔细的思考。
python代码实现:
重新思考问题,重新复现这个问题的求解,代码如下:
大佬的实现代码:
好吧,很开心,跟大佬的想法一样,只是还是老问题,就是大佬们的代码相对而言,更加简洁,对于多个条件的判断,然后把他们放在一起,更加清楚,方便。
example:
3
/ \
9 20
/ \
15 7
There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.
题目分析:求所有左叶子节点的和,然后判断是否为左叶子节点,在这个地方容易出现的问题:第一,在于单个节点的情况的漏判;第二是对于左叶子节点的判断,不能按照叶子节点的判断来走,必须按照左叶子节点的判断来处理;第三是对于如何计数和的处理,这个也需要仔细的思考。
python代码实现:
class Solution(object): def sumOfLeftLeaves(self, root): """ :type root: TreeNode :rtype: int """ if root == None: return 0 if root.left == None and root.right == None: return 0 root.val = 0 if root.left != None: if root.left.left == None and root.left.right == None: root.val += root.left.val else: root.val += self.sumOfLeftLeaves(root.left) root.val += self.sumOfLeftLeaves(root.right) return root.val
重新思考问题,重新复现这个问题的求解,代码如下:
class Solution(object): def sumOfLeftLeaves(self, root): """ :type root: TreeNode :rtype: int """ if not root or (not root.left and not root.right): return 0 if root.left: if not root.left.left and not root.left.right: return root.left.val + self.sumOfLeftLeaves(root.right) return self.sumOfLeftLeaves(root.left) + self.sumOfLeftLeaves(root.right)
大佬的实现代码:
class Solution(object): def sumOfLeftLeaves(self, root): if not root: return 0 if root.left and not root.left.left and not root.left.right: return root.left.val + self.sumOfLeftLeaves(root.right) return self.sumOfLeftLeaves(root.left) + self.sumOfLeftLeaves(root.right) # isn't leave
好吧,很开心,跟大佬的想法一样,只是还是老问题,就是大佬们的代码相对而言,更加简洁,对于多个条件的判断,然后把他们放在一起,更加清楚,方便。
相关文章推荐
- LeetCode-404-Sum of Left Leaves-E
- leetcode 404 Sum of Left Leaves
- [Leetcode] #404 Sum of Left Leaves
- LeetCode 404 Sum of Left Leaves
- LeetCode@Tree_404_Sum_of_Left_Leaves
- 【LeetCode】404 Sum of Left Leaves(java实现)
- [LeetCode-404]Sum of Left Leaves(java)
- LeetCode 404 Sum of Left Leaves
- leetcode 404 Sum of Left Leaves C++
- LeetCode[404] Sum of Left Leaves
- leetcode404: Sum of Left Leaves
- leetcode 404 Sum of Left Leaves
- leetcode 404 Sum of Left Leaves
- LeetCode 404 Sum of Left Leaves (DFS)
- LeetCode@HashMap_404_Sum_of_Left_Leaves
- LeetCode 404: Sum of Left Leaves
- Leetcode #404 Sum of Left Leaves
- LeetCode 404:Sum of Left Leaves
- leetcode-404-Sum of Left Leaves
- Leetcode 404 Sum of Left Leaves