仅记录学习笔记,如有错误欢迎指正。
题目 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 示例- 输入:{1,2,3,#,#,4,5}
- 输出: [[1],[3,2],[4,5]]
import java.util.*;
public class Solution {
public ArrayList> Print(TreeNode pRoot) {
ArrayList> res = new ArrayList<>();
if(pRoot == null){
return res;
}
linkedList q = new linkedList<>();
q.push(pRoot);
int level = 0;
while(!q.isEmpty()){
ArrayList list = new ArrayList<>();
int size = q.size();
while(size-->0){
TreeNode cur = q.pop();
// 层数为奇数末尾添加元素,层数为偶数头部添加元素
if(level % 2 == 0)
list.add(cur.val);
else
list.add(0,cur.val);
if (cur.left != null)
q.addLast(cur.left);
if (cur.right != null)
q.addLast(cur.right);
}
res.add(list);
level++;
}
return res;
}
}



