/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean isValidBST(TreeNode root) {
return helper(root,Long.MIN_VALUE,Long.MAX_VALUE);
}
//参数中的 min & max 代表的是 root 为根树里的节点的值域
//要用long不然{Integer.MAX_VALUE}这个case过不了.
private boolean helper(TreeNode root,long min,long max){
if(root==null){
return true;
}
//如果根节点不满足bst的定义,即左子树都小于根节点、右子树都不小于根节点
if (root.val<=min||root.val>=max){
return false;
}
else {
return helper(root.left, min,root.val)&&helper(root.right,root.val,max);
//因为左边必须要比 root.val 小,右边必须要比 root.val 大
}
}
}
98. Validate Binary Search Tree
最新推荐文章于 2024-09-16 17:05:22 发布