码迷,mamicode.com
首页 > 其他好文 > 详细

BST的合法性:validate-binary-search-tree

时间:2018-03-11 14:40:28      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:search   bin   nod   div   treenode   min   traversal   col   sea   

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    //方法1:每个结点都对应一个上限,一个下限。
    public boolean isValidBST(TreeNode root) {
        return isValidRoot(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
    }
    
    public boolean isValidRoot(TreeNode root,int lower,int upper) {
        if(root==null)
            return true;
        if(root.val<=lower || root.val>=upper)
            return false;
        return isValidRoot(root.left, lower, root.val)
                && isValidRoot(root.right, root.val, upper);    
    }
}

/* 
    //方法2:中序遍历,记录前一个结点,与当前结点的值比较。
    public boolean isValidBST(TreeNode root) {
        inorderTraversal(root);
        return isValidBST;
    }
    
    TreeNode pre;
    boolean isValidBST=true;
    public void inorderTraversal(TreeNode root) {
        if(root!=null) {
            inorderTraversal(root.left);
            if(pre!=null && pre.val>=root.val)
                isValidBST=false;
            pre=root;
            inorderTraversal(root.right);
        }
    }
}
*/

 

BST的合法性:validate-binary-search-tree

标签:search   bin   nod   div   treenode   min   traversal   col   sea   

原文地址:https://www.cnblogs.com/midiyu/p/8543587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!