二叉树之字形遍历
按照下面这样写是“超出时间限制”……纳尼?搞不懂
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res=new LinkedList<>();
Queue<TreeNode> queue=new LinkedList<>();
queue.offer(root);
boolean reverse=false;
while(!queue.isEmpty()){
List<Integer> temp=new LinkedList<>();
int len=queue.size();
while(len-->0){
TreeNode cur=queue.poll();
if(cur==null)
continue;
temp.add(cur.val);
//服了气了,这怎么就cur变root呢……
queue.offer(root.left);
queue.offer(root.right);
}
if(reverse)
Collections.reverse(temp);
reverse=!reverse;
if(temp.size()!=0)
res.add(temp);
}
return res;
}
}