这道题采用递归的方法,leetcode有很多道题都用了这样的思想,不多说了,代码见
public class SumRoottoLeafNumbers {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
//存储最终结果
int sum = 0;
public int sumNumbers(TreeNode root) {
if(root == null){
return 0;
}
if(root.left == null && root.right == null){
return root.val;
}
iterate(root, root.val);
return sum;
}
//递归搜索
private void iterate(TreeNode root,int temp){
if(root.left == null && root.right == null){
sum = sum + temp;
return;
}
if(root.left != null){
iterate(root.left,temp * 10 + root.left.val);
}
if(root.right != null){
iterate(root.right, temp * 10 + root.right.val);
}
}
}
本文介绍了一种使用递归方法解决LeetCode题目中树的路径数字之和问题的具体实现方式。通过定义一个辅助函数`iterate`来遍历二叉树的所有路径,并将这些路径上的数字累加起来得到最终的总和。
388

被折叠的 条评论
为什么被折叠?



