二叉树的层次遍历----java实现

版权声明:转载请标明出处 https://blog.csdn.net/snow_7/article/details/51815787

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

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

代码:

import java.util.LinkedList;

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);
		  }
	  }
	  
  }
 
}


展开阅读全文

没有更多推荐了,返回首页