LeetCode-098-验证二叉搜索树

思路
1.递归法
2.中序遍历
代码
//1.递归法
class Solution {
public boolean isValidBST(TreeNode root) {
return helper(root,Long.MIN_VALUE,Long.MAX_VALUE);
}
boolean helper(TreeNode root,long min,long max){
if(root==null) return true;
if(root.val<=min||root.val>=max) return false;
return helper(root.left,min,root.val)&&helper(root.right,root.val,max);
}
}
//2.中序遍历
class Solution {
long pre=Long.MIN_VALUE;
public boolean isValidBST(TreeNode root) {
if(root==null)return true;
if(!isValidBST(root.left)){
return false;
}
if(root.val<=pre){
return false;
}
pre=root.val;
if(!isValidBST(root.right)){
return false;
}
return true;
}
}
本文介绍了如何使用递归和中序遍历算法来验证二叉搜索树的性质。通过递归法逐层检查节点值是否符合BST规则,同时展示了中序遍历过程中维持前驱节点值的方法。
1090

被折叠的 条评论
为什么被折叠?



