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 iterative and recursive solutions
#recursive
def sumOfLeftLeaves(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root: return 0
ans = 0
if root.left:
if not root.left.left and not root.left.right:
ans += root.left.val
else:
ans += self.sumOfLeftLeaves(root.left)
if root.right:
ans += self.sumOfLeftLeaves(root.right)
return ans
#iterative
def sumOfLeftLeaves(self, root):
"""
:type root: TreeNode
:rtype: int
"""
if not root:
return 0
stack = [root]
result = 0
while stack:
p = stack.pop()
if p.left and not p.left and not p.right:
result += p.left.val
if p.left:
stack.append(p.left)
if p.right:
stack.append(p.right)
return result