Validate Binary Search Tree
来源:互联网 发布:linux命令date格式化 编辑:程序博客网 时间:2024/05/28 14:56
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.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}"
.
Solution:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: bool traverse(TreeNode* root, int &pre, bool &flag) { if(root == NULL) return true; bool left = traverse(root->left, pre, flag); if(flag && pre >= root->val) return false; else { flag = true; pre = root->val; } bool right = traverse(root->right, pre, flag); return left && right; } bool isValidBST(TreeNode* root) { int pre; bool flag = false; return traverse(root, pre, flag); }};
0 0
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- Validate Binary Search Tree
- 单列的实现的问题
- Linux下如何安全退出线程
- if使用注意事项
- JAVA 并发编程-线程同步工具类(十二)
- linux查看jar包内文件命令
- Validate Binary Search Tree
- uiwebview通过cookie自动登录
- java 动态代理实现原理
- HDU 2444 The Accomodation of Students (二分图最大匹配+二分图染色)
- 双重DP实例2:K次购买股票的最大收益
- Android 使用handler实现线程间发送消息 (主线程 与 子线程之间)、(子线程 与 子线程之间)
- Android动态加载JAR包的实现方法
- 一、SDWebImage分析--库处理流程分析
- leetcode[108]:Convert Sorted Array to Binary Search Tree