二叉树的层次遍历

来源:互联网 发布:今天移动网络怎么了 编辑:程序博客网 时间:2024/05/21 06:30

根据层次遍历的顺序,每一层都是从左到右的遍历输出,借助于一个队列。

先将根节点入队,当前节点是队头节点,将其出队并访问,如果当前节点的左节点不为空将左节点入队,如果当前节点的右节点不为空将其入队。所以出队顺序也是从左到右依次出队。


public class LevelOrder  {    public void levelIterator(BiTree root)    {        if(root == null)        {            return ;        }        LinkedList<BiTree> queue = new LinkedList<BiTree>();        BiTree current = null;        queue.offer(root);//将根节点入队        while(!queue.isEmpty())        {            current = queue.poll();//出队队头元素并访问            System.out.print(current.val +"-->");            if(current.left != null)//如果当前节点的左节点不为空入队            {                queue.offer(current.left);            }            if(current.right != null)//如果当前节点的右节点不为空,把右节点入队            {                queue.offer(current.right);            }        }            }     }  


原创粉丝点击