题目描述
给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。
题目解析
在102的基础上,添加一个奇偶层判断,隔层反转。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> res=new ArrayList();
if(root==null)
return res;
LinkedList<TreeNode> queue=new LinkedList();
//先将头结点入队列
// 正常队列对应的方法是offer添加,poll返回并删除第一个,peek返回第一个不删除
queue.offer(root);