Validate Binary Search Tree
来源:互联网 发布:奇迹暖暖 网络连接失败 编辑:程序博客网 时间:2024/05/17 03:40
题目:判断一个棵树是否是BST树
思路:BST树要求当前节点的所有左子树的节点的key小于当前节点的key,右子树节点的key大于当前节点的key。例如
二叉树{10,5,#,#,15,6,20},其判断过程是这样:
1.到达key=10的节点,min=INT_MIN, max=INT_MAX, min<10<max,继续
2.到达key=5的节点,min=INT_MIN,max=10, min<5<max,继续
3.到达key=15的节点,min=10, max=INT_MAX, min<15<max,继续
4.到达key=6的节点,min=10,max=15, 不满足min<6<max,返回false
由此可见,把当前节点作为最大值传给左子树,作为最小值传给右子树,然后判断
class Solution {public: bool isBSTHelper(TreeNode* root, int low, int high) { if (root == NULL) { return true; } if (root->val > low && root->val <high) { return isBSTHelper(root->left, low, root->val) && isBSTHelper(root->right, root->val, high); } else { return false; } } bool isValidBST(TreeNode *root) { return isBSTHelper(root, INT_MIN, INT_MAX); }};
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
- 两个进程共享数据的方法
- Unity3D渲染优化技巧
- URAL 1375. Bill Clevers
- 利用数组建立栈
- 你还在用QPushButton吗?
- Validate Binary Search Tree
- 安卓 图片和文字分享
- 微信公众号下载媒体文件到个人服务器
- C++ 函数中如何接收数量不定的函数参数
- Qt 无边框、透明、可移动、的个性窗体案例详解
- C++对C加强专题总结:namespace,register,bool,三目运算符,类型检测,struct
- 安卓线程相关 HandlerThread Handler Thread Looper Message Runnable
- 单例模式
- IOS拨打电话方法