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

38: Validate Binary Search Tree

时间:2015-01-27 23:29:54      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

/************************************************************************/
        /*       38:      Validate Binary Search Tree                            */
        /************************************************************************/
        /*
         *  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.

confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.
         *
         * */
        
        
        /*
         * 二叉搜索树:
         *
         * */
        
        /**
         * Definition for binary tree
         * public class TreeNode {
         *     int val;
         *     TreeNode left;
         *     TreeNode right;
         *     TreeNode(int x) { val = x; }
         * }
         */
        
/**1 : max(left nodes) < root&& min(right nodes)>root *******************************************/

// 当 min(left node )>root || max(right nodes)<root 时 就肯定不是了

 

public boolean isValidBST(TreeNode root)
        {
            return  validate(root,null,null);
        }

        boolean validate(TreeNode node, TreeNode tmin, TreeNode tmax) {
            if (node == null) return true;
            if (tmin != null && node.val <= tmin.val) return false;
            if (tmax != null && node.val >= tmax.val) return false;
            return validate(node.left, tmin, node) && validate(node.right, node, tmax);
        }

 

38: Validate Binary Search Tree

标签:

原文地址:http://www.cnblogs.com/theonemars/p/4254212.html

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