
如果将打印安排在同个数字第一次被访问时,即先序遍历
第二次即中序遍历
第三次即后序遍历
现二叉树的先序、中序、后序遍历,包括递归方式和非递归
方式
二叉树结构定义
public static class Node {
public int value;
public Node left;
public Node right;
public Node(int data) {
this.value = data;
}
} /**
* 是否为完全二叉树
*
* @param head
* @return
*/
public static boolean isCBT(Node head) {
if (head == null) {
return true;
}
Queue queue =new LinkedList();
boolean leaf = false;
Node left,right;
//开始时,将头加入队列
queue.offer(head);
while (!queue.isEmpty()) {
//然后在队列中出队当前节点
head = queue.poll();
//拿到左右孩子
left = head.left;
right = head.right;
//开启了叶节点的阶段 且 左/右孩子非空
if ((leaf && (left != null || right != null)) || (left == null && right != null)) {
return false;
}
if (left != null) {
queue.offer(left);
}
if (right != null) {
queue.offer(right);
} else {
leaf = true;
}
}
return true;
} 二叉树层序遍历
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/3199/viewspace-2812348/ ,如需转载,请注明出处,否则将追究法律责任。