实现单链表的倒排

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:48:58
typedef struct tagLinkList
{
int data;
struct tagLinkList *next;
} LinkList , *pLinkList ;

LinkList ReverseList(LinkList head)
{
// 答案
}

遍历链表,每次翻转下一个元素的指针

类似:
a = head;
b = a->next;
while (b) {
tmp = b->next;
b->next = a;
a = b;
b = tmp;
}
head = b;

你没给我们结点的结构,所以我不知道你结点的成员字母是什么,下面是我写的,你把字母改一下你就能用了

IntSLLNode是我的结点的结构名

IntSLLNode* p = head->next;
IntSLLNode* q=p->next;
if (head==NULL ) return ;
else if (head->next ==NULL) return ;
p=head; q = p->next;
head->next = NULL;
while (q!=NULL){
IntSLLNode* temp = q ->next;
q ->next = p;
p = q;
q = temp;
}
head = p;
return ;