題目描述:
給定一個二叉樹,它的每個結點都存放一個 0-9 的數字,每條從根到葉子節點的路徑都代表一個數字。
例如,從根到葉子節點路徑 1->2->3 代表數字 123。
計算從根到葉子節點生成的所有數字之和。
說明: 葉子節點是指沒有子節點的節點。
輸入:
[1,2,3]
[4,9,0,5,1]
輸出:
25
1026
題意:
題目描述
題解:
簡單dfs
直接搜到最後更新答案就好了
代碼:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int sumNumbers(TreeNode root) {
return sumNumbers_dfs(root, 0);
}
public int sumNumbers_dfs(TreeNode root, int i){
if (root == null) return 0;
int temp = i * 10 + root.val;
if (root.left == null && root.right == null)
return temp;
return sumNumbers_dfs(root.left, temp) + sumNumbers_dfs(root.right, temp);
}
}