原题
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.
解法
递归. 创建全局变量self.res, 遍历树, 遇到左叶子就加到self.res里.
代码
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def sumOfLeftLeaves(self, root):
"""
:type root: TreeNode
:rtype: int
"""
self.res = 0
def traverse(root):
if not root:
return
if root.left and root.left.left is None and root.left.right is None:
self.res += root.left.val
traverse(root.left)
traverse(root.right)
traverse(root)
return self.res