public class Solution {
public ArrayList grayCode(int n) {
// Start typing your Java solution below
// DO NOT write main() function
if(n==0) {
ArrayList res = new ArrayList();
res.add(0);
return res;
}
ArrayList a = grayCode(n-1);
int s = 1<<(n-1);
for(int i=a.size()-1;i>=0;i--){
a.add(a.get(i)|s);
}
return a;
}
}