二叉树横向连接

来源:互联网 发布:xp网络共享设置 编辑:程序博客网 时间:2024/05/16 04:43
  • 原来的树是这样的:
        1       /  \      2    3     / \  / \    4  5  6  7
  • 将其转换成这样
        1 -> NULL       /  \      2 -> 3 -> NULL     / \  / \    4->5->6->7 -> NULL
  • 节点结构如下:
  struct TreeLinkNode {      TreeLinkNode *left;      TreeLinkNode *right;      TreeLinkNode *next;    }
  • 解法如下:
class Solution {public:    void connect(TreeLinkNode *root) {        if(root == NULL) return ;        while(root->left){            TreeLinkNode * tmpRoot = root;                tmpRoot->left->next = tmpRoot->right;            while(tmpRoot->next){                tmpRoot->right->next = tmpRoot->next->left;                tmpRoot = tmpRoot->next;                if(tmpRoot->left)                    tmpRoot->left->next = tmpRoot->right;            }            root = root->left;        }    }};
0 0
原创粉丝点击