您的位置:首页 > 编程语言 > Java开发

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

2017-11-13 14:43 274 查看
 
与树的前中后序遍历的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 }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: