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;    
        }
    }
    

    不一样的烟火
  • 相关阅读:
    第十二周
    第十一周作业
    第十周作业
    第九周作业
    第五周总结和实验报告三
    第四周总结和实验报告二
    第一周实验报告和第三周课程总结
    第二周总结
    2019春总结作业
    2019年春第二次课程设计实验报告
  • 原文地址:https://www.cnblogs.com/cstdio1/p/13336353.html
Copyright © 2011-2022 走看看