Please solve the programming task below using a self-contained code snippet in a markdown code block.

An n-bit gray code sequence is a sequence of 2n integers where:

Every integer is in the inclusive range [0, 2n - 1],
The first integer is 0,
An integer appears no more than once in the sequence,
The binary representation of every pair of adjacent integers differs by exactly one bit, and
The binary representation of the first and last integers differs by exactly one bit.

Given an integer n, return any valid n-bit gray code sequence.
 
Please complete the following python code precisely:
```python
class Solution:
    def grayCode(self, n: int) -> List[int]:
```