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

本文详细介绍了二叉树的层次遍历算法,对比前中后序遍历的DFS思想,层次遍历采用BFS思想,利用队列实现。文章提供了具体的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 }

 

转载于:https://www.cnblogs.com/rever/p/7109572.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值