Path In Zigzag Labelled Binary Tree(C++二叉树寻路)

Myth丶恋晨 2023-01-02 10:28 201阅读 0赞

解题思路:

(1)从下往上,除2,注意左右顺序

  1. class Solution {
  2. private:
  3. vector<int> v;
  4. public:
  5. void parent(int label) {
  6. v.insert(v.begin(),label);
  7. int a=log(label)/log(2),b=0;
  8. b=a+1;
  9. if(b%2==0) {
  10. label = pow(2,b)-label-1+pow(2,a);
  11. label = label/2;
  12. } else {
  13. label = label/2;
  14. label = pow(2,a)-1-(label-pow(2,a-1));
  15. }
  16. if(label==1) v.insert(v.begin(),label);
  17. else parent(label);
  18. }
  19. vector<int> pathInZigZagTree(int label) {
  20. if(label==1) return {1};
  21. parent(label);
  22. return v;
  23. }
  24. };

发表评论

表情:
评论列表 (有 0 条评论,201人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1104.

    在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行

    相关 1104.

    在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。 如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行