检查是否为BST
来源:互联网 发布:遗传算法bp神经网络 编辑:程序博客网 时间:2024/05/16 13:51
题目描述:
请实现一个函数,检查一棵二叉树是否为二叉查找树。
给定树的根结点指针TreeNode* root,请返回一个bool,代表该树是否为二叉查找树。
- 二叉查找树:所有左边的节点小于等于当前节点,而当前节点必须小于所有右边的节点
1、中序遍历二叉树
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Checker {public: int last = INT_MIN; bool checkBST(TreeNode* root) { if (root == nullptr) return true; if (!(checkBST(root->left))) return false; if (root->val <= last) return false; last = root->val; if (!checkBST(root->right)) return false; return true; }};
2、二叉查找树的定义
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Checker {public: bool checkBST(TreeNode* root) { return checkBST(root, INT_MIN, INT_MAX); } bool checkBST(TreeNode* root, int min, int max) { if (root == nullptr) return true; if (root->val < min || root->val >= max) return false; if (!checkBST(root->left, min, root->val) || !checkBST(root->right, root->val, max)) return false; return true; }};
阅读全文
0 0
- 检查是否为BST
- 检查是否为BST
- 检查是否为BST
- 检查是否为BST
- 牛客网 | 检查是否为BST
- 二叉树---检查是否为BST
- 98.Validate Binary Search Tree&检查是否为BST
- 《程序员面试金典》检查是否为BST
- 程序员面试金典-4.5检查是否为BST
- 程序员面试金典——检查是否为BST
- 判断是否为BST
- 程序员面试金典:检查是否为BST、寻找下一个结点
- 检查是否为数字
- 判断一个二叉树是否为BST
- 检查是否为日期时间
- 检查是否为日期时间
- 检查是否为特定值
- javascript检查是否为数字
- RaspBerry Pi 系统安装——Raspbian(精简版)
- 前端传0开头的数据到后端时数据转换8进制
- Java实现获取前/后N天,跨度M,的日期/月份期的函数
- 快速排序
- 工具类NetUtil
- 检查是否为BST
- [CCFwithAxin]201412-2 Z字形扫描(类似蛇形矩阵)
- DataSetObservable,ContentObservable源码分析
- 【Java开发工具】IntelliJ IDEA 快捷键和设置
- Python爬虫之爬取动态页面数据
- js零散知识
- 这是我个人的学习经验
- windows bat文件去掉请按任意键继续的文字
- 基数排序