class Solution {
public:
vector<int> pathInZigZagTree(int label) {
vector<int> res;
int layer=0;
int labelBackUp=label;
while(label!=0) {
label>>=1;
layer++;
}
int i=1;
int index;
res.push_back(labelBackUp);
while (layer!=i) {
index = labelBackUp - pow(2, layer - i) + 1;
labelBackUp = labelBackUp - (ceil((float)index / 2) + index - 1);
res.push_back(labelBackUp);
i += 1;
}
reverse(res.begin(),res.end());
return res;
}
};