二叉樹系列---求所有從根到葉子路徑組成的數的和
阿新 • • 發佈:2018-12-30
題目:
給定一個二叉樹,從根到葉子的所經過的所有節點的值組成一個數,求所有路徑數的和;
比如,
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);
}