问题描述
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
- 节点的左子树只包含小于当前节点的数。
- 节点的右子树只包含大于当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
Example
输入:
输出: false
解释: 输入为: [5,1,4,null,null,3,6]。
根节点的值为 5 ,但是其右子节点值为 4 。
题目链接:98. 验证二叉搜索树 (难度:中等)
思路
我们可以对 BST 做中序遍历,并判断当前序列是否为递增序列。若不是,则显然该树不是 BST,若是,则继续遍历,直到遍历完整棵树。由于题目当中的树节点是 int 类型,我们可以采用 long long 类型的 LLONG_MIN 来作为中序序列的前趋节点。这样可以简化代码的逻辑。
代码
1 | class Solution { |
执行结果: 12 ms, 18.3 MB
- 本文作者: Phoenix
- 本文链接: https://phoenix500526.github.io/2020/06/24/Leetcode-98-验证二叉搜索树/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!
