Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * 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>> levelOrder(TreeNode root) {
- List<List<Integer>> lists = new ArrayList<List<Integer>>();
- if (root == null) return lists;
- Deque<TreeNode> queue1 = new ArrayDeque<TreeNode>();
- Deque<TreeNode> queue2 = new ArrayDeque<TreeNode>();
- queue1.offer(root);
- while (!queue1.isEmpty() || !queue2.isEmpty()){
- List<Integer> list = new ArrayList<Integer>();
- List<Integer> list2 = new ArrayList<Integer>();
- while (!queue1.isEmpty()){
- TreeNode node = queue1.poll();
- list.add(node.val);
- if (node.left != null){
- queue2.offer(node.left);
- }
- if (node.right != null){
- queue2.offer(node.right);
- }
- }
- if (!list.isEmpty()){
- lists.add(list);
- }
- while (!queue2.isEmpty()){
- TreeNode node = queue2.poll();
- list2.add(node.val);
- if (node.left != null){
- queue1.offer(node.left);
- }
- if (node.right != null){
- queue1.offer(node.right);
- }
- }
- if (!list2.isEmpty()){
- lists.add(list2);
- }
- }
- return lists;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement