class Solution {
public:
void connect(TreeLinkNode *root) {
if(root==NULL) return ;
TreeLinkNode *start = root;
TreeLinkNode *rootcur = start;
TreeLinkNode *tail=NULL;
while(start){
rootcur = start;
tail = NULL;
while(rootcur){
if(rootcur->left){
if(tail){
tail->next = rootcur->left;
tail = tail->next;
}else{
tail = rootcur->left;
}
cout<<rootcur->val<<" "<<tail->val<<endl;
}
if(rootcur->right){
if(tail){
tail->next = rootcur->right;
tail = tail->next;
}else{
tail = rootcur->right;
}
}
rootcur = rootcur->next;
}
while(start){
if(start->left){
start = start->left;
break;
}
if(start->right) {
start = start->right;
break;
}
start = start->next;
}
}
return ;
}
};
public:
void connect(TreeLinkNode *root) {
if(root==NULL) return ;
TreeLinkNode *start = root;
TreeLinkNode *rootcur = start;
TreeLinkNode *tail=NULL;
while(start){
rootcur = start;
tail = NULL;
while(rootcur){
if(rootcur->left){
if(tail){
tail->next = rootcur->left;
tail = tail->next;
}else{
tail = rootcur->left;
}
cout<<rootcur->val<<" "<<tail->val<<endl;
}
if(rootcur->right){
if(tail){
tail->next = rootcur->right;
tail = tail->next;
}else{
tail = rootcur->right;
}
}
rootcur = rootcur->next;
}
while(start){
if(start->left){
start = start->left;
break;
}
if(start->right) {
start = start->right;
break;
}
start = start->next;
}
}
return ;
}
};