Offer-NO60.把二叉树打印成多行

把二叉树打印成多行

http://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288

题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
示例1
输入
{8,6,10,5,7,9,11}
返回值
[[8],[6,10],[5,7,9,11]]

ArrayList<ArrayList<Integer> > Print(TreeNode root) {
        ArrayList<ArrayList<Integer>> res = new ArrayList();
        if(root==null) return res;
        Queue<TreeNode> queue= new LinkedList();
        queue.offer(root);
        while(!queue.isEmpty()){
           int size = queue.size();//一行的所有元素
            ArrayList<Integer> list = new ArrayList<Integer>();
           while(size>0){
               TreeNode node = queue.poll();
               list.add(node.val);
               if(node.left!=null) queue.offer(node.left);//使用的是队列,先进先出
               if(node.right!=null) queue.offer(node.right);//先左后右
               size--;
           }
            res.add(list);//一行的数据加入到结果集
        }
        return res;
    }
全部评论

相关推荐

吴offer选手:下午mt一来就告警说项目来不及,估计明天拿了权限就要参与开发了 已老实
实习生的蛐蛐区
点赞 评论 收藏
分享
07-15 12:24
重庆大学 运营
坏消息:和好工作擦肩而过
给点吧求求了:怎么可能因为差几秒,估计就是简历更好看婉拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务