算法-根节点到叶子节点数字之和
这道题可以用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)!