题目:计算给定二叉树的所有左叶子之和。
1 2 3 4 5 6 7
|
3 / 9 20 / 15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
|
思路:必须是叶子节点(是子节点且此子节点的左右孩子都是空),才能append
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
class : def __init__(self, x): self.val = x self.left = None self.right = None
class Solution: def helper(self, root,res): if root and root.left: if not root.left.left and not root.left.right: res.append(root.left.val) self.helper(root.left,res) if root and root.right: self.helper(root.right,res)
def sumOfLeftLeaves(self, root): """ :type root: TreeNode :rtype: int """ res = [] self.helper(root,res) return sum(res)
tree = TreeNode(3) left_tree = TreeNode(9) right_tree = TreeNode(20) right_tree.left = TreeNode(15) right_tree.right = TreeNode(7) tree.left = left_tree tree.right = right_tree print(Solution().sumOfLeftLeaves(TreeNode(None)))
|
近期评论