LeetCode每日一题
程序员文章站
2022-07-12 23:40:33
...
98. 验证二叉搜索树
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
- 节点的左子树只包含小于当前节点的数。
- 节点的右子树只包含大于当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
本题可以从中序遍历的角度出发,中序遍历顺序------>左中右,遍历完成以后我们可以根据存储的值来判断是不是有效的二叉搜索树。
// 中序遍历
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<Integer> res = new ArrayList<>();
public boolean isValidBST(TreeNode root) {
if(root == null) return true;
medium(root);
for(int i = 0; i < res.size() - 1; i++){
if(res.get(i) >= res.get(i + 1)) return false;
}
return true;
}
//中序遍历代码
public void medium(TreeNode root){
if(root != null){
medium(root.left);
res.add(root.val);
medium(root.right);
}
}
}
上一篇: 每日一题 LeetCode
下一篇: 32. 最长有效括号--栈,动态规划