码迷,mamicode.com
首页 > 其他好文 > 详细

从上到下打印二叉树

时间:2020-07-18 19:52:44      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:load   实现   res   get   info   level   nod   null   alt   

技术图片

解题:利用队列先进先出来实现层次遍历

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

技术图片

从上到下打印二叉树

标签:load   实现   res   get   info   level   nod   null   alt   

原文地址:https://www.cnblogs.com/cstdio1/p/13336353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!