An n-bit gray code sequence is a list of 2ⁿ integers where every value is in [0, 2ⁿ - 1], the first value is 0, every value appears once, and adjacent values (including the first and last) differ by exactly one bit.
Return any valid n-bit gray code sequence using the standard reflected-binary construction.