之字形编号,其实和常规的从左到右编号的区别就是,路径上的数字和输入的数在相同奇偶性的行无差别,不同奇偶性的行时的求对称的数字就行
class Solution { public: vector<int> pathInZigZagTree(int label) { vector<int> v; int k = log(label) / log(2) + 1; for(int i = 1; i <= k; i++) { if(i != 1 && (!(k % 2) && (i % 2) || (k % 2) && !(i % 2))) { v.push_back(pow(2, i - 1) + (pow(2, i) - 1 - int(label / pow(2, k - i)))); } else v.push_back(int(label / pow(2, k - i))); } return v; } };