题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
思路:采用一个辅助栈
public class Solution {
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
ArrayList<ArrayList<Integer> > res = new ArrayList<ArrayList<Integer> >();
if(pRoot == null) return res;
Queue<TreeNode> q = new LinkedList<>();
q.offer(pRoot);
while(!q.isEmpty()){
ArrayList<Integer> list = new ArrayList<>();
int size = q.size();
for(int i=0;i<size;i++){
TreeNode node = q.poll();
list.add(node.val);
if(node.left != null)
q.offer(node.left);
if(node.right != null)
q.offer(node.right);
}
res.add(list);
}
return res;
}
}