思路
关于树的问题,先想递归~
- 既然要求和,我们每个结点又有多个子树,所以递归函数肯定要返回一个int值,代表该路径的值
- 基于上一条假设,如果某个结点是叶结点,那它才能返回路径的值,如果是null,那就返回0,如果是普通结点,那就返回两个子结点的路径和
class Solution {
public int sumNumbers(TreeNode root) {
return dfs(root, 0);
}
private int dfs(TreeNode node, int val) {
if (null == node)
return 0;
int path = 10 * val + node.val;
if (null == node.left && null == node.right)
return path;
return dfs(node.left, path) + dfs(node.right, path);
}
}