思路:采用后序遍历
递归参数、返回值:直接使用 LeetCode 给出的函数即可。
递归终止条件:当前节点为空时,返回0;当前节点是叶子结点时,返回0。
单层递归逻辑:采用后序遍历
左:统计左子树的左叶子之和;当左子树的左孩子是叶子结点时,左子树的左叶子之和就是左子树的左孩子的值。
右:统计右子树的左叶子之和
中:二者相加
class Solution(object):
def sumOfLeftLeaves(self, root):
sum1=0
sum2=0
if root==None:
return 0
if root.left==None and root.right==None:
return 0
sum1=self.sumOfLeftLeaves(root.left)
if root.left!=None and root.left.left==None and root.left.right==None:
sum1=root.left.val
if root.right:
sum2=self.sumOfLeftLeaves(root.right)
return sum1+sum2