给你一个二叉树的根节点 root
,判断其是否是一个有效的二叉搜索树。
方法一:先将二叉树存储在列表中,再判断列表是否有序
//1.先中序遍历,将树转化为数组
//2.在判断数组是否为升序
public static boolean isValidBST(TreeNode root) {
List<Integer> list=new ArrayList<>();
inorder(root,list);
System.out.println(list);
//判断tree数组是否有序
for(int i=1;i<list.size();i++){
if(list.get(i-1)>=list.get(i))
return false;
}
return true;
}
//中序遍历
public static void inorder(TreeNode root,List<Integer> list){
if(root==null) return;
inorder(root.left,list);
list.add(root.val);
inorder(root.right,list);
}