/**
* Definition for a Node.
* struct Node {
* int val;
* struct Node *left;
* struct Node *right;
* struct Node *next;
* };
*/
struct Node* findnext(struct Node* root){
while(root->next!=NULL){
if(root->next->left!=NULL){
return root->next->left;
}
if(root->next->right!=NULL){
return root->next->right;
}
root=root->next;
}
return NULL;
}
struct Node* connect(struct Node* root) {
if(root==NULL){
return NULL;
}
if(root->left!=NULL&&root->right!=NULL){
root->left->next=root->right;
root->right->next=findnext(root);
}
if(root->right==NULL&&root->left!=NULL){
root->left->next=findnext(root);
}
if(root->right!=NULL&&root->left==NULL){
root->right->next=findnext(root);
}
connect(root->right);
connect(root->left);
return root;
}
力扣------填充每个节点的下一个右侧节点指针 II
最新推荐文章于 2024-10-03 23:42:25 发布