zoukankan      html  css  js  c++  java
  • 二叉树的层次遍历(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 }
  • 相关阅读:
    ViewData,ViewBag,TempData
    http和https
    Array与ArrayList
    程序员与书和视频
    技术学习的方法研究
    文章发布声明
    面向对象JAVA多态性
    嵌入式开发总结
    CSDN博客代码显示乱码的原因
    将Windows的桌面目录设置到D盘
  • 原文地址:https://www.cnblogs.com/rever/p/7109572.html
Copyright © 2011-2022 走看看