404左叶子之和[Python常见问题]

# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
a = TreeNode(1)
b = TreeNode(2)
c = TreeNode(3)
a.left = b
a.right = c
# 这道题还是比较容易的,只需要一遍深搜遍历所有节点,然后找到所有的左叶子节点就好了。
class Solution:
def sumOfLeftLeaves(self, root: TreeNode) -> int:
# 首先判断root为空的时候直接返回None
if not root:
return 0
# 定义一个变量用来接收和。
self.total = 0
# 函数递归
self.dfs(root, 1)
return self.total
# 我们在这里传入一个标志位,递归左子树为0,
def dfs(self, root, flag):
# 如果为叶子节点且标志位为0,就加上对应的值。
if not root.left and not root.right and flag == 0:
self.total += root.val
# 接着递归就好了。
if root.left:
self.dfs(root.left, 0)
if root.right:
self.dfs(root.right, 1)
A = Solution()
print(A.sumOfLeftLeaves(a))
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 404左叶子之和