I implemented the same thing but just some comments to help if someone cannot understand the logic clearly.

We just wrote down the pattern of the solution:

start: [0]
i = 0: [0]
i = 1: [0, 1]
nums[1] = nums[0] + 1
i = 2: [0, 1, 3, 2]
nums[2:4] = nums[1: : -1] + 2
i = 3: [0, 1, 3, 2, 6, 7, 5 ,4]
nums[4:8] = nums[3:: -1] + 4
similarly, we have nums[2**(i-1):2**i] = nums[2**(i-1)-1::-1] + 2**(i-1)