题解 | #把二叉树打印成多行#

把二叉树打印成多行

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

import java.util.*;


/*
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/
public class Solution {
    ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
        ArrayList<ArrayList<Integer> > thelist= new  ArrayList<ArrayList<Integer> >();
        if(pRoot==null) return thelist;
        Queue<TreeNode> queue=new LinkedList<TreeNode>();//队列用来BFS遍历树
        queue.offer(pRoot);//1.把根节点放进去。包括left和right 放进去的是一个地址
        while(!queue.isEmpty()){//2.判断队空
            ArrayList<Integer> list=new ArrayList<Integer>();//3.用来存储每一层
            int size=queue.size();//4.队中有几个元素
            for(int i=0;i<size;i++){
                TreeNode temp=queue.poll();//5.队头出队
                list.add(temp.val);//6.加到该层的list中
                if(temp.left!=null) queue.offer(temp.left);//7.左子树入队
                if(temp.right!=null) queue.offer(temp.right);//8.右子树入队 继续转到2进行判断
            }
            thelist.add(list);
        }
        return thelist;


    }

}
全部评论

相关推荐

秋招投简历提醒助手:个人经验是,一般面二十场左右就会进入侃侃而谈阶段。我今年七月末的时候开始的第一次面试,都是很多不会,回复很慢。后面慢慢迭代,到九月中的时候基本上面啥说啥,很放松的状态
远程面试的尴尬瞬间
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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