我在 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)