98. Validate Binary Search Tree
请看题
Example
思路
这道题要求我们去判断一棵树是不是一颗二叉树,那么二叉树的特征就是其左子树节点一定小于其当前节点,右子树节点则是大于。
有两种方式,使用Inorden算法,将每一节点存入到容器中然后去比较,如果不符合inorden的规则那么必定为false。反之True。
本文实现的是第二种方法,在进行判断的时候就顺便处理了,定义一个私有方法用来给公共方法调用。
私有方法的实现逻辑是
- 如果
root
为空(即到达叶子节点的子节点),返回true
。 - 如果当前节点的值不满足 BST 的定义(即小于等于
min
或大于等于max
),返回false
。也就是第二个if - 递归检查左子树和右子树,左子树的最大值为当前节点,右子树的最小值为当前节点。
Code
1 |
|
结束。
98. Validate Binary Search Tree
http://example.com/2024/06/02/98. Validate Binary Search Tree/