zoukankan      html  css  js  c++  java
  • 二叉树的层次遍历之队列的使用

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public List<List<Integer>> levelOrder(TreeNode root) {
            if(root==null){
                return Collections.emptyList();
            }
            List<List<Integer>> result=new ArrayList<>();
            Deque<TreeNode> queue=new ArrayDeque<>();
            queue.offer(root);
            while(!queue.isEmpty()){
                //当前队列的元素个数,也就是该层节点元素的个数
                int size=queue.size();
                //集合存储当前层的元素
                List<Integer> list=new ArrayList<>();
                for(int i=0;i<size;i++){
                    //出队操作
                    TreeNode temp=queue.poll();
                    //将出队列的元素添加到当前层的集合当中
                    list.add(temp.val);
                    //如果出队的元素左节点不为空,则入队列
                    if(temp.left!=null){
                        queue.offer(temp.left);
                    }
                    //如果出队的元素右节点不为空,则入队列
                    if(temp.right!=null){
                        queue.offer(temp.right);
                    }
                }
                result.add(list);
            }
            return result;
        }
    }
  • 相关阅读:
    维度穿梭
    演绎与抽象
    幻想的功能
    深层探宝
    内存游戏
    函数内功
    共享与私有的变量
    参数的格式
    功能模拟与功能实现
    【Oracle】基础知识查漏补缺
  • 原文地址:https://www.cnblogs.com/czsblog/p/11171113.html
Copyright © 2011-2022 走看看