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

层序遍历

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

层序遍历结果为EBGADFHC

实现步骤

1.创建队列

2.使用循环从队列中弹出一个结点

        2.1获取当前结点的key

        2.2如果当前结点的左子结点不为空,则把左子结点放入队列中

        2.3如果当前结点的右子结点不为空,则把右子结点放入队列中

    //层序遍历
    public Queue layerErgodic(){
        //定义两个队列,分别存储树中的键和树中的结点
        Queue keys = new Queue<>();
        Queue 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;
    }

测试结果

二叉树层序遍历(Java实现)_第1张图片

 

你可能感兴趣的:(Java,java,数据结构)