把二叉树打印成多行

来源:互联网 发布:排课表的软件 编辑:程序博客网 时间:2024/06/05 16:20

题目描述

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。

具体代码如下:

import java.util.ArrayList;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>> ret=new ArrayList<ArrayList<Integer>>();     ArrayList<Integer> tmp=new ArrayList<Integer>();     LinkedList<TreeNode> q=new LinkedList<TreeNode>();     if(pRoot==null)     return ret;        q.add(pRoot);        int now=1,next=0;      while(!q.isEmpty()){      TreeNode t=q.remove();      now--;      tmp.add(t.val);      if(t.left!=null){       q.add(t.left);       next++;      }      if(t.right!=null){      q.add(t.right);      next++;          }      if(now==0){      ret.add(new ArrayList<Integer>(tmp)) ;      tmp.clear();      now=next;          next=0;      }          }       return ret;        }        }
原创粉丝点击