单队列即可,因为我先看的后面这题,所以用了双队列 ,哈哈哈,有点傻了
ArrayList<ArrayList<Integer> > Print(TreeNode pRoot) {
//双队列
ArrayList<ArrayList<Integer>> listAll = new ArrayList<>();
if(pRoot==null) {
return listAll;
}
Queue<TreeNode> queue1 = new LinkedList<>();
Queue<TreeNode> queue2 = new LinkedList<>();
queue1.add(pRoot);
while(!queue1.isEmpty()||!queue2.isEmpty()) {
ArrayList<Integer> list = new ArrayList<>();
if(!queue1.isEmpty()) {
while(!queue1.isEmpty()) {
TreeNode node = queue1.remove();
list.add(node.val);
if (node.left != null)
queue2.add(node.left);
if (node.right != null)
queue2.add(node.right);
}
listAll.add(list);
continue;
}else {
while(!queue2.isEmpty()) {
TreeNode node = queue2.remove();
list.add(node.val);
if (node.left != null)
queue1.add(node.left);
if (node.right != null)
queue1.add(node.right);
}
listAll.add(list);
continue;
}
}
return listAll;
}


京公网安备 11010502036488号