Subsets II, traced one call at a time

Each box is one call to backtrack, and every call adds one subset to res. nums is sorted first so equal values sit together. Grey ⤼ boxes show where continue skips a value this level has already tried, which is what keeps duplicates out of res.

CALL
1 / 1

Code

The highlighted line runs next. The pill shows the live values in the running call.

Recursion tree

Hover a subset in res to find its call

not called yet running now paused, waiting on a child call finished (subset saved) duplicate skipped by continue #k = position in res

Call stack

Top frame runs; the rest are paused

Variables

nums

path one shared list, edited in place by every call

res

Keyboard: ← → step, Space play or pause. Use up to 6 numbers; repeats are the point, so try something like 1, 2, 2, 2 or 4, 4, 1, 4.