原题链接:129. 求根节点到叶节点数字之和 - 力扣(LeetCode)
解决思路:
这道题其实就是深度优先搜索,因为他需要一次性直接从根节点访问到叶子节点,所以采用深度优先搜索,并且每次搜索时,将原先的值乘以10再加上现有的值即可构成所需数字,然后依次累加遍历到叶子节点的值即可。
完整代码:
class Solution {
public int sumNumbers(TreeNode root) {
return dfs(root, 0);
}
public int dfs(TreeNode root, int prevSum) {
if (root == null) {
return 0;
}
int sum = prevSum * 10 + root.val;
if (root.left == null && root.right == null) {
return sum;
} else {
return dfs(root.left, sum) + dfs(root.right, sum);
}
}
}