1. 程式人生 > 其它 >Java算每一條從根節點到葉子節點的路徑的和

Java算每一條從根節點到葉子節點的路徑的和

技術標籤:簡單小演算法

題目描述

給定一個僅包含數字0−9的二叉樹,每一條從根節點到葉子節點的路徑都可以用一個數字表示。
例如根節點到葉子節點的一條路徑是1→2→3,那麼這條路徑就用123來代替。
找出根節點到葉子節點的所有路徑表示的數字之和
例如:

這顆二叉樹一共有兩條路徑,
根節點到葉子節點的路徑1→2用數字12代替
根節點到葉子節點的路徑 1→3用數字13代替
所以答案為\ 12+13=2512+13=25

示例1

輸入

{1,0}

返回值

10

示例2

輸入

{1,#,9}

返回值

19
import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    int resultVal = 0;
    /**
     * 
     * @param root TreeNode類 
     * @return int整型
     */
    public int sumNumbers (TreeNode root) {
        
        preTree(root);
       
        
        return resultVal;
    }
    
    public void preTree(TreeNode root){
        
        if(root == null){
            return;
        }
        
        if(root.left == null && root.right == null){
            resultVal += root.val;
            return;
        }
        
        if(root.left!=null){
            root.left.val += root.val*10;
        }
        
        if(root.right!=null){
            root.right.val += root.val*10;
        }

        preTree(root.left);
        preTree(root.right);
    }
}