文章目录
- 题目描述
- 代码 & 思路
题目描述
- 二叉搜索树,应该满足中序遍历的结果是按顺序的。
比如例1是1,2,3;而例二是1,5,3,4,6,是错的
代码 & 思路
- 就是中序遍历 + 有序判断(大于前一个结点)
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {long pre = Long.MIN_VALUE;public boolean isValidBST(TreeNode root) {// 中序遍历来做// 因为是中序遍历,因此只需要存储一个“前一个结点的val“即可if(root == null){return true;}// 先判断左边对不对if(!isValidBST(root.left)){return false;}// 判断当前if(root.val <= pre){return false;}// 更新结点pre = root.val;// 判断右边,前面都对了,右边就决定一切return isValidBST(root.right);}
}