import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return bool布尔型
*/
public boolean isValidBST (TreeNode root) {
// write code here
//所有左边的节点都小于右边,所有右边的节点都大于左边
//即进行中序遍历是递增的,由于后续要得到元素比较大小所以只能使用数组
List<Integer> list = new ArrayList<>();
inorder(list,root);
for(int i=1;i<list.size();i++){
if(list.get(i-1)>list.get(i)){
return false;
}
}
return true;
}
public void inorder(List<Integer> list, TreeNode root){
//遇到空节点则返回
if(root == null)
return;
//先去左子树
inorder(list, root.left);
//再访问根节点
list.add(root.val);
//最后去右子树
inorder(list, root.right);
}
}