zoukankan      html  css  js  c++  java
  • 力扣102题(二叉树的层序遍历)

    102、二叉树的层序遍历

    基本思想:

    从上到下、从左到右依次依次将每个数放入到队列中,然后按顺序依次打印就是想要的结果

    具体实现:

    1.先将二叉树的根节点放到队列que中

    2.第一层循环中

      定义列表itemList放二叉树每一层的结果

    3.第二程循环中

      len控制每一层,减到0的话说明二叉树的一层遍历完

      如果队列que不为空,

      弹出队列头加入列表itemList

           然后判断节点是否有孩子,有的话,把孩子放入队列que

    4.

    代码:

    class Solution {
        List<List<Integer>> resList = new ArrayList<List<Integer>>();
        public List<List<Integer>> levelOrder(TreeNode root) {
            if (root == null)  return resList;
            Queue<TreeNode>  que = new LinkedList<TreeNode>();
            que.offer(root);
    
            while (!que.isEmpty()){
                List<Integer> itemList = new ArrayList<Integer>();
                int len = que.size();
    
                while (len > 0){
                    TreeNode tmpNode = que.poll();
                    itemList.add(tmpNode.val);
    
                    if (tmpNode.left != null) que.offer(tmpNode.left);
                    if (tmpNode.right != null) que.offer(tmpNode.right);
                    len--;
                }
                resList.add(itemList);
             }
             return resList;
       
               
        }
    }
  • 相关阅读:
    实验二
    2
    DS博客作业08--课程总结
    DS博客作业07--查找
    DS博客作业06--图
    DS博客园作业05--树
    有向图强连通分量Tarjan算法
    nyoj 题目737 合并石子(一)
    nyoj 题目61 传纸条
    nyoj 题目49 开心的小明
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/15518639.html
Copyright © 2011-2022 走看看