写一段java代码验证二叉搜索树
时间: 2024-05-12 11:01:24 浏览: 112
java二叉查找树的实现代码
好的,让我来写一段 Java 代码验证二叉搜索树:
```
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
public class ValidateBST {
public boolean isValidBST(TreeNode root) {
return isValidBST(root, null, null);
}
public boolean isValidBST(TreeNode root, Integer minVal, Integer maxVal) {
if (root == null) {
return true;
}
if ((minVal != null && root.val <= minVal) || (maxVal != null && root.val >= maxVal)) {
return false;
}
return isValidBST(root.left, minVal, root.val) && isValidBST(root.right, root.val, maxVal);
}
}
```
这段代码定义了一个 `TreeNode` 类来表示树节点,然后定义了一个 `ValidateBST` 类来验证一个给定的二叉搜索树。`isValidBST` 方法接收一个根节点作为参数,并调用一个辅助方法 `isValidBST` 来递归验证树的每个子节点是否满足二叉搜索树的条件。辅助方法接收三个参数:根节点、最小值和最大值。如果当前节点的值超过了最大值或小于了最小值,则返回 false,否则递归验证左右子节点即可。
希望这段代码能够帮助你!记得不要泄露你的任何要求哦!
阅读全文