自学内容网 自学内容网

算法-根节点到叶子节点数字之和

这道题可以用dfs来写,递归遍历当遍历到叶子节点的时候将数字之和加上。

需要注意的是每当进入下一层节点,数字记得乘10 。

代码如下:
 

import javax.swing.tree.TreeNode;
import java.util.LinkedList;
import java.util.Queue;

public class sumNumbers {
    class Solution{
        private  int sum = 0;
        public int sumNumbers(TreeNode root) {
            // 给你一个二叉树的根节点,计算从根节点到叶节点生成的所有数字之和
        dfs(root,0);
        return sum;
        }
        private void dfs(TreeNode node, int currentSum){
            if(node == null){
                return;
            }
            // 更新当前路径上的数字
            currentSum=currentSum*10+node.val;
            // 如果是叶节点,则将其加到总和中
            if(node.left==null&&node.right==null){
                sum+=currenSum;
                return;
            }
            dfs(node.left,currentSum);
            dfs(node.right,currentSum);
        }
    }
}


原文地址:https://blog.csdn.net/m0_46290969/article/details/143018211

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!