129. Sum Root to Leaf Numbers
解题思路:
二叉树首先往递归上想,标准模板:
def fun(root,..):
if not root:
return ..
if root.left:
fun(root.left,..)
if root.right:
fun(root.right,..)
return ..
本题解法:
class Solution:
def sumNumbers(self, root: TreeNode) -> int:
if not root: # 若为空节点直接返回0
return 0
def helper(node, sum):
# sum 表示从根节点到当前节点(不包括当前节点)前的值
# 若node为根节点,则sum为0
if not node.left and not node.right: # 若该节点为leaf,则返回10*sum+node.val
return 10*sum+node.val
temp = 0
if node.left:
temp += helper(node.left, 10*sum+node.val)
if node.right:
temp += helper(node.right, 10*sum+node.val)
return temp
return helper(root, 0)