在层次遍历的基础上加上对于节点层奇偶性的判断:
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>>res=new ArrayList<>();
if(root==null)
return res;
Queue<TreeNode>q=new LinkedList<>();
q.add(root);
int level=0;
while(!q.isEmpty()){
int size=q.size();
List<Integer>subres=new ArrayList<>();
while(size>0){
TreeNode node=q.poll();
if(level%2==0)
subres.add(node.val);
else
subres.add(0,node.val);
if(node.left!=null)
q.add(node.left);
if(node.right!=null)
q.add(node.right);
size--;
}
level++;
res.add(subres);
}
return res;
}
}