奇数层调用temp.add(node.val)
偶数层调用temp.add(0,node.val)
实现了反序,且插入的时间复杂度为O(1)
class Solution {
public List<List<Integer>> printFromTopToBottom(TreeNode root) {
List<List<Integer>> list=new LinkedList();
if(root==null) return list;
Queue<TreeNode> q=new LinkedList();
Stack<Integer> stack=new Stack();
boolean tag=true;//true是表示奇数层,false表示偶数层
q.offer(root);
while(q.size()>0){
int size=q.size();
List<Integer> temp=new LinkedList();
while(size-->0){
TreeNode node=q.poll();
if(tag){
temp.add(node.val);
}else{
temp.add(0,node.val);
}
if(node.left!=null) q.offer(node.left);
if(node.right!=null) q.offer(node.right);
}
tag=!tag;
list.add(temp);
}
return list;
}
}
你这个stack没有用到呀