二叉树的层次遍历(Java代码实现)


 

与树的前中后序遍历的DFS思想不同,层次遍历用到的是BFS思想。一般DFS用递归去实现(也可以用栈实现),BFS需要用队列去实现。

层次遍历的步骤是:

1.对于不为空的结点,先把该结点加入到队列中

2.从队中拿出结点,如果该结点的左右结点不为空,就分别把左右结点加入到队列中

3.重复以上操作直到队列为空

 

 1 public class Solution{
 2 class TreeNode { 3 int val; 4  TreeNode left; 5  TreeNode right; 6 TreeNode(int x) { val = x; } 7 } 8 public static void LaywerTraversal(TreeNode root){ 9 if(root==null) return; 10 LinkedList<TreeNode> list = new LinkedList<TreeNode>(); 11  list.add(root); 12  TreeNode currentNode; 13 while(!list.isEmpty()){ 14 currentNode=list.poll(); 15  System.out.println(currentNode.val); 16 if(currentNode.left!=null){ 17  list.add(currentNode.left); 18  } 19 if(currentNode.right!=null){ 20  list.add(currentNode.right); 21  } 22  } 23  } 24 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM