我正在尝试交换链表中两个相邻节点的地址.我尝试使用int temp变量交换它们的值,它完全正常.但现在,我想通过指针交换两个地址.不幸的是,它在我的while循环中创建了一个无限循环.这是我的代码片段:
使用int://工作得很好
node* swapNumbers(node* head, int data){
int temp;
node *cursor = head;
while(cursor!=NULL){
if(cursor->data == data){
temp = cursor->data;
cursor->data = cursor->next->data;
cursor->next->data = temp;
//printf("1: %d\n", cursor->data);
//printf("2: %d\n", cursor->next->data);
return cursor;
}
cursor = cursor->next;
}
return NULL;
}
Run Code Online (Sandbox Code Playgroud)
使用地址://这创建了一个无限循环!
node* swapNumbers(node* head, int data){
node *temp = NULL;
node *cursor = head;
while(cursor!=NULL){
if(cursor->data == data){
temp = cursor;
cursor = cursor->next;
cursor->next = temp;
return cursor;
}
cursor = cursor->next;
}
return NULL;
} …Run Code Online (Sandbox Code Playgroud)