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 {//层次遍历
        Queue<TreeNode> q = new LinkedList<>();
        List<Integer> list = new ArrayList<Integer>();
        public int[] levelOrder(TreeNode root) {
        if(root == null) return new int[0];    
        q.add(root);
        list.add(root.val);
            while(true){
                for(int i=0;i<q.size();i++){//q.size()控制当前层元素个数,要出多少次队列
                    TreeNode t = q.poll();
                    if(t.left != null){
                   q.add(t.left);
                   list.add(t.left.val);
                    }
                    if(t.right != null){
                    q.add(t.right);
                    list.add(t.right.val);
                    }
                }
                if(q.size() == 0) break;
            }
            int n = list.size();
            int []res = new int [n];
            for(int i=0;i<n;i++)
            res[i] = list.get(i);
            return res;    
        }
    }
    

    不一样的烟火
  • 相关阅读:
    Python打包之pyinstaller
    Python关于Pyqt
    Python撰写mail
    后台管理左侧菜单
    全选反选以及取消
    模态对话框
    Spark2.3.1版本全分布模式的安装与部署
    Kafka消息格式及多版本支持
    2019-11-18-plot作图
    剑指Offer-知识迁移能力53-59
  • 原文地址:https://www.cnblogs.com/cstdio1/p/13336353.html
Copyright © 2011-2022 走看看