二叉树系列---求所有从根到叶子路径组成的数的和

来源:互联网 发布:香港大学计算机 知乎 编辑:程序博客网 时间:2024/06/05 05:16

题目:

给定一个二叉树,从根到叶子的所经过的所有节点的值组成一个数,求所有路径数的和;
比如,
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);    }
0 0
原创粉丝点击