Leetcode 255. Verify Preorder Sequence in Binary Search Tree (Medium) (cpp)
2016-11-24 07:12
295 查看
Leetcode 255. Verify Preorder Sequence in Binary Search Tree (Medium) (cpp)
Tag: Tree, Stack
Difficulty: Medium
/*
255. Verify Preorder Sequence in Binary Search Tree (Medium)
Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree.
You may assume each number in the sequence is unique.
Follow up:
Could you do it using only constant space complexity?
*/
class Solution {
public:
bool verifyPreorder(vector<int>& preorder) {
int i = 0;
verifyPreorder(preorder, i, INT_MIN, INT_MAX);
return i >= preorder.size() ? true : false;
}
private:
void verifyPreorder(vector<int>& nums, int& i, int low, int high) {
if (i >= nums.size() || nums[i] > high || nums[i] < low) return;
int cur = nums[i++];
verifyPreorder(nums, i, low, cur);
verifyPreorder(nums, i, cur, high);
return;
}
};
Tag: Tree, Stack
Difficulty: Medium
/*
255. Verify Preorder Sequence in Binary Search Tree (Medium)
Given an array of numbers, verify whether it is the correct preorder traversal sequence of a binary search tree.
You may assume each number in the sequence is unique.
Follow up:
Could you do it using only constant space complexity?
*/
class Solution {
public:
bool verifyPreorder(vector<int>& preorder) {
int i = 0;
verifyPreorder(preorder, i, INT_MIN, INT_MAX);
return i >= preorder.size() ? true : false;
}
private:
void verifyPreorder(vector<int>& nums, int& i, int low, int high) {
if (i >= nums.size() || nums[i] > high || nums[i] < low) return;
int cur = nums[i++];
verifyPreorder(nums, i, low, cur);
verifyPreorder(nums, i, cur, high);
return;
}
};
相关文章推荐
- Leetcode 151. Reverse Words in a String (Medium) (cpp)
- Leetcode 71. Simplify Path (Medium) (cpp)
- Leetcode 230. Kth Smallest Element in a BST (Medium) (cpp)
- Leetcode 300. Longest Increasing Subsequence (Medium) (cpp)
- Leetcode 137. Single Number II (Medium) (cpp)
- Leetcode 416. Partition Equal Subset Sum (Medium) (cpp)
- Leetcode 54. Spiral Matrix (Medium) (cpp)
- Leetcode 74. Search a 2D Matrix (Medium) (cpp)
- Leetcode 134. Gas Station (Medium) (cpp)
- Leetcode 35. Search Insert Position (Medium) (cpp)
- Leetcode 142. Linked List Cycle II (Medium) (cpp)
- Leetcode 167. Two Sum II - Input array is sorted (Medium) (cpp)
- Leetcode 367. Valid Perfect Square (Medium) (cpp)
- Leetcode 163. Missing Ranges (Medium) (cpp)
- Leetcode 376. Wiggle Subsequence (Medium) (cpp)
- Leetcode 209. Minimum Size Subarray Sum (Medium) (cpp)
- Leetcode 392. Is Subsequence (Medium) (cpp)
- Leetcode 59. Spiral Matrix II (Medium) (cpp)
- Leetcode 62. Unique Paths (Medium) (cpp)
- Leetcode 228. Summary Ranges (Medium) (cpp)