二叉树层序遍历(Java实现)

  • Post author:
  • Post category:java


层序遍历

层序遍历,就是从根节点(第一层)开始,依次向下,获取每一层结点的值。

层序遍历结果为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 版权协议,转载请附上原文出处链接和本声明。