算数学题吧, 逻辑比较简单
/**
* @param {number} label
* @return {number[]}
*/
const pathInZigZagTree = function (label) {
const level = label.toString(2).length;
const res = new Array(level);
let index = label;
if (level % 2 === 0) {
index = 2 ** level - label + 2 ** (level - 1) - 1;
}
for (let i = res.length - 1; i >= 0; i--) {
if (i % 2 !== 0) {
res[i] = 2 ** (i+1) - index + 2 ** i - 1;;
} else {
res[i] = index;
}
index = parseInt(index / 2);
}
return res;
};