# Validate Binary Search Tree

127人阅读 评论(0)

Given a binary tree, determine if it is a valid binary search tree (BST).

Assume a BST is defined as follows:

• The left subtree of a node contains only nodes with keys less than the node's key.
• The right subtree of a node contains only nodes with keys greater than the node's key.
• Both the left and right subtrees must also be binary search trees.

public List<Integer> inorderTraversal(TreeNode root) {
Set<TreeNode> visited=new HashSet<TreeNode>();
List<Integer> result=new ArrayList<Integer>();
Stack<TreeNode> stack=new Stack<TreeNode>();
stack.push(root);
while(!stack.isEmpty()){
TreeNode p=stack.peek();
if(p.left!=null&&!visited.contains(p.left)){
stack.push(p.left);
}else{
p=stack.pop();
if(p.right!=null){
}
}
}
return result;
}

public boolean isValidBST(TreeNode root) {
List<Integer> list=inorderTraversal(root);
for(int i=1;i<list.size();i++){
if(list.get(i)<=list.get(i-1))
return false;
}
return true;
}

List<Integer> list = new ArrayList<Integer>();

public boolean isValidBST(TreeNode root) {
if (root == null) return true;
if (root.left == null && root.right == null) return true;
inOrderTraversal(root);
for (int i = 1; i < list.size(); i++) {
if (list.get(i) <= list.get(i - 1)) return false;
}
return true;
}

public void inOrderTraversal(TreeNode root) {
if (root == null) return;
inOrderTraversal(root.left);
inOrderTraversal(root.right);
} 

public boolean isValidBST(TreeNode root) {
if(root==null)
return true;
if(root.left!=null&&root.left.val>=root.val)
return false;
if(root.right!=null&&root.right.val<=root.val)
return false;
return isValidBST(root.left)&&isValidBST(root.right);
}

public boolean isValidBST(TreeNode root) {
return check(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
}

public boolean check(TreeNode root,int min,int max){
if(root==null)
return true;
if(root.val>=max||root.val<=min)
return false;
return check(root.left, min, root.val)&&check(root.right, root.val, max);
}

0
0

个人资料
• 访问：64089次
• 积分：2776
• 等级：
• 排名：第15296名
• 原创：215篇
• 转载：37篇
• 译文：0篇
• 评论：6条
最新评论