您的位置:首页 > 其它

leetcode Validate Binary Search Tree

2015-10-13 21:37 435 查看
题目链接

思路:

何时为一个合格的搜索树?

1左边是合格搜索树

2右边是合格搜索树

3根大于左边的最大值

4根小于右边的最小值

运用递归判断

/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isValidBST(TreeNode root) {
if(root==null)
{
return true;
}

boolean left=true;
boolean right=true;
if(root.left!=null)
{

left=isValidBST(root.left)&&root.val>getmax(root.left);
}
if(root.right!=null)
{
right=isValidBST(root.right)&&root.val<getmin(root.right);
}

return left&&right;

}

public int getmin(TreeNode root)
{

while(root.left!=null)
{
root=root.left;
}
return root.val;
}

public int getmax(TreeNode root)
{

while(root.right!=null)
{
root=root.right;
}
return root.val;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: