把二叉树打印成多行

把二叉树打印成多行

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

思路:做这题前先看看从上往下打印二叉树

import java.util.*;
public class Solution {
    public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
         ArrayList<Integer> list = new ArrayList<Integer>();
        if(root==null)return list;

         Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(root);
        while(!queue.isEmpty()){
            TreeNode temp = queue.poll();
            list.add(temp.val);//给list复制还是要用.val
            if(temp.left!=null)queue.offer(temp.left);
            if(temp.right!=null)queue.offer(temp.right);
        }
        return list;
    }
}

然后发现这题就是在从上往下打印基础上多了个层次问题。在while中加个int size = queue.size();就vans了

import java.util.*;
public class Solution {
    ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer>> thelist = new ArrayList<ArrayList<Integer>>();
        if(pRoot==null)return thelist; //这里要求返回thelist而不是null
        Queue<TreeNode> queue = new LinkedList<TreeNode>();
        queue.offer(pRoot);
        while(!queue.isEmpty()){
            ArrayList<Integer> list = new ArrayList<Integer>();
            int size = queue.size();
            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);
            }
            thelist.add(list);
        }
        return thelist;
    }

}
全部评论
请问这里的list和thelist有什么区别啊
点赞 回复 分享
发布于 2020-07-31 10:27

相关推荐

点赞 评论 收藏
分享
把球:这个听过,你加了就会发现是字节的hr
点赞 评论 收藏
分享
世界上最难的事情是,长大以后的你还在坚持着实现小时候的梦想;而更难的事情则是,你真的实现了小时候的梦想。&nbsp;10&nbsp;年前的那个孩子怎么也不会想到,10&nbsp;年后的他自己竟然真的成为了他梦想中的那个样子......&nbsp;启航&nbsp;不知道为什么,从小就对计算机这么一个冰冷的东西情有独钟:我热衷于探索&nbsp;Windows&nbsp;XP&nbsp;控制面板中的每一个选项,与&nbsp;Windows&nbsp;搜索的吉祥物&nbsp;Rover&nbsp;做朋友,研究光驱和&nbsp;3.5&nbsp;软盘驱动器(是的,3.5&nbsp;软盘!)的使用方式&nbsp;——&nbsp;即使在那个计算机还没有普遍连上网的时代,我依然愿意探索计算机中的每一个角落。&nbsp;当然,这可能和我喜欢玩计算机游戏有关,在那个网络并不发达,移动通信...
在摸鱼的香菇很想退休:感觉佬的经历是我曾经想过的 我最开始想学计算机是因为我想写游戏脚本 不过后来上大学走偏了去打竞赛了 不过算是找到另外一个爱好了 从结果来看感觉还是学历加非科班吃了亏 不过现在形式不好 读研也不一定能有更好的结果 还是祝愿佬拿到更多更好的offer吧 感觉你真的很优秀
点赞 评论 收藏
分享
35 1 评论
分享
牛客网
牛客企业服务