leetcode

我的 leetcode 题解(JavaScript)


算数学题吧, 逻辑比较简单

/**
 * @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;
};