This is an cool alternative approach, but not necessarily better than recursion.

Using recursion, there will be at most O(n) extra memory used while the result list is being built (thanks to the implicit recursive stack, representing a single path from the root at a time which at most gets to a leaf).

This method keeps an entire level of nodes in memory (next level to process), which at the last level is n / 2, resulting in O(n) space.

That said, it still doesn't change the final O(n) space complexity (required by the problem, for having to return nested lists containing exactly n elements).