classSolution {publicList<List<Integer>> levelOrder(TreeNode root) {//BFS soltion using FIFO queueQueue<TreeNode> queue =newLinkedList<>();List<List<Integer>> result =newLinkedList<>();if (root==null) return result;queue.add(root);while(!queue.isEmpty()){int size =queue.size();List<Integer> list =newLinkedList<>();while(size-->0){// retrive and remove the first element of queue : queue.poll(); root =queue.poll();list.add(root.val);if (root.left!=null) queue.add(root.left);if (root.right!=null) queue.add(root.right); }result.add(list); }return result; }}