ram*_*les 5 c pointers linked-list list
我正在尝试交换链表中两个相邻节点的地址.我尝试使用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)
我的typedef结构包含以下内容:
typedef struct node
{
int data;
struct node* next;
} node;
Run Code Online (Sandbox Code Playgroud)
我是C的新手,指针仍然让我感到困惑.任何帮助将不胜感激!
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |