二叉树总结:入口
二叉树的基本操作:
5、判断一个二叉树是否是BST树,判断一个BST树是否是AVl树
7、把BST树满足[begin,end]区间的值放在集合中、打印出来
二叉树的按层打印
和层序遍历的原理一样,只需要在出队的时候将节点加入集合即可。层序遍历参考2、前、中、后序遍历,层序遍历
//按层打印BST树。
public List<List<T>> levelPrint(){
return levelPrint(root);
}
private List<List<T>> levelPrint(BSTNode root) {
if(root==null){
return new ArrayList();
}
List<List<T>> resultList=new ArrayList<>();
BSTNode tempNode=null;
int size=0;
Queue<BSTNode> queue=new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
List<T> list=new ArrayList<>();
size=queue.size();
for(int i=0;i<size;i++){
tempNode=queue.poll();
list.add((T) tempNode.getData());
if(tempNode.getLeft()!=null){
queue.offer(tempNode.getLeft());
}
if(tempNode.getRight()!=null){
queue.offer(tempNode.getRight());
}
}
resultList.add(list);
}
return resultList;
}