# 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
"""
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)
0,参考后的代码
1,题目要求:
也就是计算一棵树中所有的左叶子节点的值的和。
2,依旧是以一种递归的算法,需要注意的是对于节点的条件判断:当节点为空时,返回值为0。对于一个节点,如果其左孩子不为空但是左孩子没有孩子,说明该节点的左孩子为左叶子节点,也即符合题目条件的节点。按照要求,取该节点左孩子的值并加上该节点右孩子的递归算法(找右子树中的左叶节点)。