推荐广州微信网站建设,wordpress评论 边栏,seo做网站赚钱吗,html5导航网站源码下载层序遍历序列为#xff1a;ABCDEFG
思路#xff1a;栈是先进后出的数据结构#xff0c;而队列是先进先出的数据结构。
我们层序遍历#xff0c;很明显#xff0c;先遇到的节点先打印#xff0c;不同于前中后序遍历#xff0c;我们采用队列结构。 具体执行过程如下ABCDEFG
思路栈是先进后出的数据结构而队列是先进先出的数据结构。
我们层序遍历很明显先遇到的节点先打印不同于前中后序遍历我们采用队列结构。 具体执行过程如下
1、初始化——放入根节点
2、检查队列是否为空如果是空则遍历完成
3、队列弹出元素并打印
4、把弹出的元素的左孩子如果存在的话和右孩子如果存在的话放入队列。
5、重复2、3、4步。 下面是实现代码按照思路实现即可。 public void levelOrder() {NodeE node root;//根LinkedListNodeE list new LinkedList();//队列list.add(node);//放入根while(!list.isEmpty()) {nodelist.poll();System.out.print(node.data);if(node.lchild!null)list.offer(node.lchild);if(node.rchild!null)list.offer(node.rchild);}
}
我们通过图来看一下实际的过程。
1、放入根节点 接下来循环执行2、3、4步
2、检查队列不为空
3、打印A弹出
4、放入左右孩子B、C 继续循环执行2、3、4步
2、检查队列不为空
3、打印B弹出
4、放入左右孩子D、E 继续循环执行2、3、4步
2、检查队列不为空
3、打印C弹出
4、放入左右孩子F、G 最后四个一次弹出不再压入因为他们的孩子都是空。
遍历完成