public class Solution {
public List<List<Integer>> zigzagLevelOrder(TreeNode root) {
List<List<Integer>> list = new LinkedList
<List<Integer>>();
Deque
<TreeNode
> queue = new LinkedList
<TreeNode
>();
Deque
<TreeNode
> nextQueue
= new LinkedList
<TreeNode
>();
int flag
= 1;
queue.offer(root);
if(root
== null) {
return list;
}
List<Integer> level
= new LinkedList
<Integer>();
while(
!queue.isEmpty()) {
TreeNode node
= queue.removeLast();
level
.add(node
.val);
if (flag
== 1) {
if(node
.right
!= null) {
nextQueue
.offer(node
.right);
}
if(node
.left
!= null) {
nextQueue
.offer(node
.left);
}
}
else {
if(node
.left
!= null) {
nextQueue
.offer(node
.left);
}
if(node
.right
!= null) {
nextQueue
.offer(node
.right);
}
}
if(
queue.isEmpty()) {
Deque
<TreeNode
> temp
= nextQueue;
nextQueue
= queue;
queue = temp;
flag
= 1 - flag;
list.add(level);
level
= new LinkedList();
}
}
return list;
}
}
转载请注明原文地址: https://ju.6miu.com/read-1303364.html