剑指offer——把二叉树打印成多行

来源:互联网 发布:超级搜索软件 编辑:程序博客网 时间:2024/06/06 02:30

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
关键注意使用队列的size方法来控制层数。
import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*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>>lists = new ArrayList<>();    if(pRoot==null)return lists;    Queue<TreeNode>queue = new LinkedList<>();    queue.offer(pRoot);    while(!queue.isEmpty()){    int len = queue.size();    int i=1;    ArrayList<Integer>list = new ArrayList<>();    while(i<=len){    TreeNode node = queue.poll();    list.add(node.val);    if(node.left!=null)queue.offer(node.left);    if(node.right!=null)queue.offer(node.right);                i++;    }    lists.add(list);    }    return lists;    }    }


原创粉丝点击