• 力扣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;
       
               
        }
    }
  • 相关阅读:
    怎么获取数组中的对象的某一项之和
    原型链
    js的事件循环(Eventloop) 机制/js的宏任务微任务执行顺序
    怎么替换数组中对象的属性
    求对象所有值的和
    sequelize中duplicating:false的使用
    WebSocket
    轮播

    ssl tsl
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/15518639.html
Copyright © 2020-2023  润新知