单链表逆置是数据结构中经常容易考到,也是一个重要的问题
这里采用从前往后,一个一个逆置的方法实现单链表的整个反转
思路:
这里head指针是为了保证有一个结点一直指向表头
oldhead指针记录上一次头节点的位置
temp指针是为了将当前结点放于最前端
void SListReverse(SListNode** phead){
SListNode *head = *phead;
SListNode *temp = head->next;
SListNode *oldh = *phead;
while (temp){
oldh->next = temp->next;
temp->next = head;
head = temp;
temp = oldh->next;
}
*phead = head;
}