JAVA双队列
把二叉树打印成多行
http://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288
单队列即可,因为我先看的后面这题,所以用了双队列 ,哈哈哈,有点傻了
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; }