检查一棵二叉树是否为二叉查找树。
package _8题;
import java.util.ArrayList;
public class _4_5CheckBST1 {
public boolean checkBST(TreeNode root) {
if(root==null);
ArrayList<Integer> list=new ArrayList<>();
inorder(root,list);
return checkOrdered(list);
}
private boolean checkOrdered(ArrayList<Integer> list) {
for(int i=0;i<list.size()-1;i++) {
if(list.get(i)>list.get(i+1)) {
return false;
}
}
return true;
}
private void inorder(TreeNode<Integer> node, ArrayList<Integer> list) {
if(node==null)return;
if(node.left!=null) {
inorder(node.left,list);
}
list.add(node.val);
if(node.right!=null) {
inorder(node.right,list);
}
}
}
package _8题;
public class TreeNode<T> {
public T val;
public TreeNode<T>left=null;
public TreeNode<T>right=null;
public TreeNode<T>parent=null;
public TreeNode(T val) {
this.val = val;
}
}