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

[LeetCode] Validate Binary Search Tree

时间:2015-01-21 14:52:29      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

方法一:若是bst,中序便利后一定是有序,递增的。可以中序遍历后查看是否递增来判断

 1 class Solution {
 2     public:
 3         bool isValidBST(TreeNode *root) {
 4             
 5             if(root == NULL)
 6                 return true;
 7             vector<int> result;
 8             stack<TreeNode*> st;
 9 
10             TreeNode* p = root;
11 
12             // inorder traverse
13             while(p != NULL || st.size() != 0)
14             {
15                 while(p != NULL)
16                 {
17                     st.push(p);
18                     p = p->left;
19                 }
20 
21                 if(!st.empty())
22                 {
23                     p = st.top();
24                     st.pop();
25                     result.push_back(p->val);
26                     p = p->right;
27                 }
28             }
29             
30             //check if it is ascend
31             for(int i = 0; i < result.size()-1; i++)
32             {
33                 if(result[i] < result[i+1])
34                 ;
35                 else
36                     return false;
37             }
38             return true;
39 
40         }
41 };

 

方法二:使用递归,判断当前节点的值,是否在上边界和下边界之间,对于根节点,就是没有边界。然后递归判断

 1 class Solution {
 2     public:
 3         bool isValidBST(TreeNode *root) {
 4             return isValidBST(root, INT_MIN, INT_MAX);
 5         }   
 6         bool isValidBST(TreeNode *root, int min, int max) 
 7         {   
 8             if(root == NULL) return true;
 9 
10             if( (root->val < max) && (root->val > min) &&
11                     isValidBST(root->left, min, root->val) &&
12                     isValidBST(root->right, root->val, max) 
13               )   
14                 return true;
15             else
16                 return false;
17         }   
18 };

 

[LeetCode] Validate Binary Search Tree

标签:

原文地址:http://www.cnblogs.com/diegodu/p/Leetcode.html

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