Grokking the Coding Interview: Patterns for Coding Questions
Ask Author
Back to course home

0% completed

Vote For New Content
Solution with one while loop using JAVA

viniciuslopeslps

Aug 20, 2024

public List<List<Integer>> traverse(TreeNode root) { List<List<Integer>> result = new ArrayList<>(); LinkedList<TreeNode> ll = new LinkedList<>(); ll.add(root); int listSize = 0; List<Integer> numbers = new ArrayList<>(); int kids = 0; int level = 1; while (!ll.isEmpty()) { if (listSize == level) { result.add(numbers); level = level * kids; listSize = 0; numbers = new ArrayList<>(); kids = 0; continue; } TreeNode popped = ll.poll(); numbers.add(popped.val); listSize++; if (popped.left != null) { ll.add(popped.left); kids++; } if (popped.right != null) { ll.add(popped.right); kids++; } } result.add(numbers); return result; }

0

1

Comments
Comments

On this page