二叉树根节点到叶子节点的所有路径和
Last updated
Last updated
问题简述
给定二叉树,求所有路径和,路径定义如下:
假设某条路径的从根节点到叶节点的值为 1->2->3,则记该条路径表示的值为 123;
输入确保每个节点的值在 0~9 之间;
示例
1
2 3
结果:25(12+13=25)
思路:DFS
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型
#
class Solution:
def sumNumbers(self , root: TreeNode) -> int:
# write code here
self.ret = 0
def dfs(node: TreeNode, sum_):
if not node:
# self.ret += sum_ # 放在这里会导致“加两次”
return
sum_ = sum_ * 10 + node.val
if not node.left and not node.right:
self.ret += sum_
return
if node.left:
dfs(node.left, sum_)
if node.right:
dfs(node.right, sum_)
dfs(root, 0)
return self.ret