小编Ale*_*nko的帖子

为什么 Java 和 C++ 中的函数行为存在差异?

我在 LeetCode.com 编写面试问题时遇到了一个问题,试图提交“验证二叉搜索树”问题的解决方案。用 Java 编写的解决方案代码如下所示:

public boolean helper(TreeNode node, Integer lower, Integer upper) {
if (node == null) return true;
}

int val = node.val;
if (lower != null && val <= lower) return false;
if (upper != null && val >= upper) return false;

if (! helper(node.right, val, upper)) return false;
if (! helper(node.left, lower, val)) return false;
return true;
}

public boolean isValidBST(TreeNode root) {
    return helper(root, null, null);}
Run Code Online (Sandbox Code Playgroud)

但是,当我在 C++ 上实现完全相同的算法时,它无法正常工作,例如,在 [0,null,-1] 测试用例中。有代码:

bool isValidBST(TreeNode* root) { …
Run Code Online (Sandbox Code Playgroud)

c++ java algorithm tree

-2
推荐指数
1
解决办法
95
查看次数

标签 统计

algorithm ×1

c++ ×1

java ×1

tree ×1