題目描述
從上到下按層打印二叉樹寄纵,同一層結(jié)點從左至右輸出藻丢。每一層輸出一行晾捏。
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
public class Solution {
ArrayList<ArrayList<Integer>> Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> a = new ArrayList<Integer>();
if(pRoot == null)
return array;
Queue<TreeNode> queue1 = new LinkedList<TreeNode>();
Queue<TreeNode> queue2 = new LinkedList<TreeNode>();
queue1.add(pRoot);
while(!queue1.isEmpty() || !queue2.isEmpty()) {
while(!queue1.isEmpty()) {
TreeNode node = queue1.poll();
a.add(node.val);
if(node.left != null)
queue2.add(node.left);
if(node.right != null)
queue2.add(node.right);
}
if(a.size() > 0)
array.add(a);
a = new ArrayList<Integer>();
while(!queue2.isEmpty()) {
TreeNode node = queue2.poll();
a.add(node.val);
if(node.left != null)
queue1.add(node.left);
if(node.right != null)
queue1.add(node.right);
}
if(a.size() > 0)
array.add(a);
a = new ArrayList<Integer>();
}
return array;
}
}