[LeetCode] 98. 验证二叉搜索树
Posted 怕什么
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode] 98. 验证二叉搜索树相关的知识,希望对你有一定的参考价值。
方法一:
long pre=Long.MIN_VALUE; public boolean isValidBST3(TreeNode root){ if(root==null) return true; if(!isValidBST3(root.left)) return false; if(root.val<=pre)return false; pre=root.val; return isValidBST3(root.right); }
方法二:
/** * 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) { Stack<TreeNode> stack=new Stack<>(); double inorder=-Double.MAX_VALUE; while(!stack.isEmpty()||root!=null){ while (root!=null){ stack.push(root); root=root.left; } root=stack.pop(); if(root.val<=inorder){ return false; } inorder=root.val; root=root.right; } return true; } }
方法三:
/** * 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,null,null); } 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; } }
以上是关于[LeetCode] 98. 验证二叉搜索树的主要内容,如果未能解决你的问题,请参考以下文章