Title:
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.
方法一:42ms
递归
# 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 isLeaf(self, root):
if root.left == None and root.right == None:
return True
def sumOfLeftLeaves(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if root == None:
return 0
s = 0
if root.left and self.isLeaf(root.left):
s += root.left.val
return s + self.sumOfLeftLeaves(root.left) + self.sumOfLeftLeaves(root.right)
方法二:38ms
# 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.ans = 0
def findleave(node):
if not node:
return 0
if node.left:
if not node.left.left and not node.left.right:
self.ans += node.left.val
else:
findleave(node.left)
if node.right:
findleave(node.right)
findleave(root)