层序遍历
层序遍历,就是从根节点(第一层)开始,依次向下,获取每一层结点的值。
层序遍历结果为EBGADFHC
实现步骤
1.创建队列
2.使用循环从队列中弹出一个结点
2.1获取当前结点的key
2.2如果当前结点的左子结点不为空,则把左子结点放入队列中
2.3如果当前结点的右子结点不为空,则把右子结点放入队列中
//层序遍历
public Queue<Key> layerErgodic(){
//定义两个队列,分别存储树中的键和树中的结点
Queue<Key> keys = new Queue<>();
Queue<Node> nodes = new Queue<>();
//往队列中放入根节点
nodes.enqueue(root);
while(!nodes.isEmpty()){
//往队列中弹出一个节点,把key放进keys中
Node n=nodes.dequeue();
keys.enqueue(n.key);
//判断当前节点是否还有左子树,有的话放进nodes队列中
if (n.left!=null){
nodes.enqueue(n.left);
}
//右子树
if (n.right!=null){
nodes.enqueue(n.right);
}
}
return keys;
}
测试结果
版权声明:本文为timewilltell12原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。