老套路
用全局变量记录总和
定义一个函数用于递归 输入是新的根节点和之前的结果
每到一个叶子结点 即将结果加上叶子结点的val后加到全局变量上
如果到了None 什么也不操作
如果到了非叶子结点 递归左右
主函数最终返回全局变量
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def __init__(self):
self.res = 0
def sumNumbers(self, root: TreeNode) -> int:
self.compute(root,0)
return self.res
def compute(self,root,lastres):
if root == None:
return 0
thisres = lastres*10 + root.val
if root.left == None and root.right == None:
self.res += thisres
else:
self.compute(root.left,thisres)
self.compute(root.right,thisres)