/*
链表反转
*/
typedef struct _Node
{
int value;
struct _Node *next;
} Node;
typedef struct _linkList
{
Node *next;
} LinkList;
LinkList* linkListReverse(LinkList *list)
{
if(!list)
return nullptr;
Node * cur = list->next;
Node *next = nullptr;
Node *pre = nullptr;
while(cur->next)
{
next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
cur->next = pre;
list->next =cur;
return list;
}
测试程序
int main(int argc, char const *argv[])
{
cout<<"测试程序"<<endl;
cout<<"************"<<endl;
LinkList *list;
Node n1;
Node n2;
Node n3;
Node n4;
list->next = &n1;
n1.next = &n2;
n1.value =100;
n2.next =&n3;
n2.value =101;
n3.next =&n4;
n3.value=102;
n4.value =104;
n4.next = nullptr;
LinkList *l = linkListReverse(list);
Node *q = l->next;
while(q)
{
cout<<q->value<<endl;
q =q->next;
}
system("pause");
return 0;
}