首页 > 其他 > 详细

LeetCode OJ - Validate Binary Search Tree

时间:2014-05-07 09:00:51      阅读:413      评论:0      收藏:0      [点我收藏+]

验证二叉树是否是查找树,可以通过查看它的中序遍历是否是升序的。

下面是AC代码:

bubuko.com,布布扣
 1 /**
 2      * Given a binary tree, determine if it is a valid binary search tree (BST).
 3      * solution :
 4      * inorder sequence is an ascending sequence!
 5      * @param root
 6      * @return
 7      */
 8     public boolean isValidBST(TreeNode root){
 9         if(root == null)
10             return true;
11         LinkedList<TreeNode> stack = new LinkedList<TreeNode>();
12         //stack.push(root);
13         
14         TreeNode p = root;
15         TreeNode pre = null;
16         while(p!=null||!stack.isEmpty()){
17             if(p!=null){
18                 stack.push(p);
19                 p = p.left;
20             }else{
21                 p = stack.pop();
22                 if(pre!=null && pre.val>=p.val)
23                     return false;
24                 pre = p;
25                 p = p.right;
26             }
27         }
28         return true;
29     }
bubuko.com,布布扣

 

LeetCode OJ - Validate Binary Search Tree,布布扣,bubuko.com

LeetCode OJ - Validate Binary Search Tree

原文:http://www.cnblogs.com/echoht/p/3710467.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!