单链表的就地逆置
基本思路
将原有的链表断开为一个头节点以及一个新的链表,将新的链表的各个节点从头到尾依次使用头插法插入到之前断开的头节点之后。
代码实现
//单链表就地逆置
LNode* reverseList(LNode* list){
//将头节点与链表断开 first为待插入链表的第一个节点
LNode* first = list->next;
list->next = NULL;
//将断开的链表使用头插法插入到头节点后 work为待插入节点
while (first != NULL)
{
LNode* work = first;
first = work->next;
//将work插入
work->next = list->next;
list->next = work;
}
//返回头节点
return list;
}