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

本文介绍了一种计算二叉树中从根节点到叶子节点的所有路径数值之和的方法。通过递归方式,将每个路径上的节点值组合成数字,并最终求得所有路径数值的总和。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

给定一个二叉树,从根到叶子的所经过的所有节点的值组成一个数,求所有路径数的和;
比如,
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);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值