1. 程式人生 > >二叉樹系列---求所有從根到葉子路徑組成的數的和

二叉樹系列---求所有從根到葉子路徑組成的數的和

題目:

給定一個二叉樹,從根到葉子的所經過的所有節點的值組成一個數,求所有路徑數的和;
比如,
1
/ \
2 3

12+13=25

實現:

從上向下求,遞迴;
根:sum=val;
向下:sum=sum*10+val
如果是葉子,則返回;
非葉子,則左的和+右的和;

程式碼:

   public int sumNumbers(Node node){
        int sum=0;
        return sumNumber(node,sum);
    }

    private int sumNumber(Node node, int
sum) { if(node==null){ return 0; } sum=sum*10+node.value; if(node.left==null && node.right==null){ return sum; } return sumNumber(node.left,sum)+sumNumber(node.right,sum); }