简介
二叉搜索树 遍历
先序遍历
中序遍历
后序遍历
宽度优先遍历
判断是否为 二叉搜索树
判断是否为完全二叉树
public static boolean isCBT(Node head){
if(head == null){
return true;
}
LinkedList<Node> queue = new LinkedList<>();
boolean leaf = false;
Node l = null;
Node r = null;
queue.add(head);
while(!queue.isEmpty()){
head = queue.poll();
l = head.getLeft();
r = head.getRight();
// leaf 为 true ,即无子节点,判断其是否有子节点
if((leaf && (l != null || r != null)) || (l == null && r != null)){
return false;
}
if(l != null){
queue.add(l);
}
if(r != null){
queue.add(r);
}
// 一次标记为 true ,永久为 true
if(l == null || r == null){
leaf = true;
}
}
return true;
}