老师可以帮忙看一下我的Leetcode 437为什么出现wrong answer吗?
来源:7-6 稍复杂的递归逻辑 Path Sum III
Yvonne_yn
2023-09-17
Leetcode 437 跑不通这条测试用例
以下是我的代码:
class Solution {
public int pathSum(TreeNode root, int targetSum) {
if (root == null) return 0;
int res = 0;
res += findPath(root, targetSum);
return res + pathSum(root.left, targetSum) + pathSum(root.right, targetSum);
}
private int findPath(TreeNode node, int num) {
if (node == null) return 0;
int res = 0;
if (node.val == num) res += 1;
return res + findPath(node.left, num - node.val) + findPath(node.right, num - node.val);
}
}
但是在跑这条测试用例时出现了wrong answer
root =
[1000000000,1000000000,null,294967296,null,1000000000,null,1000000000,null,1000000000],
targetSum =
0
是不是因为int型数值溢出了呢?可以把findPath的输入改成long型吗?
写回答
1回答
-
liuyubobobo
2023-09-17
对,是因为 int 溢出了。只需要把 findPath 的 num 参数的类型改为 long 即可。(想一想为什么?)
继续加油!:)
032024-01-11
相似问题