思路:二叉搜索树的一个特点就是,它中序遍历之后的序列是升序序列,我们就可以利用这一个特征来进行中序遍历,存储在一个集合当中,之后我们再进行判断这个集合是不是真正升序的就行了。
/**
* 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 {
List<Integer>list=new ArrayList<>();
public boolean isValidBST(TreeNode root) {
boolean flag=true;
zhongxu(root);
for(int i=0;i<list.size()-1;i++){
if(list.get(i+1)<=list.get(i)){
flag=false;
break;
}
}
return flag;
}
public void zhongxu(TreeNode t){
if(t==null)
return ;
zhongxu(t.left);
list.add(t.val);
zhongxu(t.right);
}
}