题目
计算给定二叉树的所有左叶子之和。
示例:
3
/ \
9 20
/ \
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
来源:力扣(LeetCode)
解题思路
这个题比较简单,关键理解什么是左叶子即可,左叶子就是当前节点的左子树中只有一个节点;然后找一种遍历方式(二叉树的遍历方式,或者通用的图遍历方式)
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def sumOfLeftLeaves(self, root: TreeNode) -> int:
self.count=0
def preorder(root):
if root!=None:
if root.left!=None and root.left.left==None and root.left.right==None:
self.count+=root.left.val
preorder(root.left)
preorder(root.right)
preorder(root)
return self.count