1104. 二叉树寻路

之字形编号,其实和常规的从左到右编号的区别就是,路径上的数字和输入的数在相同奇偶性的行无差别,不同奇偶性的行时的求对称的数字就行

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;
    }
};

 

posted @ 2021-10-16 16:09  WTSRUVF  阅读(20)  评论(0编辑  收藏  举报