数据结构
链表逆序
笔试题:编写一个函数,实现单链表逆序
代码
//方法一:将尾结点循环插到头节点后面,实现逆序
void reverse_list(single_list *head)
{
single_list *p = head->next; //将链表除头节点的节点保存
head->next = NULL;//将链表断开
single_list *tmp = NULL;
while(p != NULL)
{
tmp = p->next;//将后面还未逆序的节点保存
//将p插入到head的后面
p->next = head->next;
head->next = p;
//将tmp的值赋给p
p = tmp;
}
}
//方法二://将尾结点指向他的前驱 尾结点的前驱指向前驱的前驱 以此类推 最后再将头节点指向原本的尾结点(待完善)
void reverse_list(single_list *head)
{
//single_list *Phead = head->next;
//single_list *Lhead = head;
//找到尾结点的前一个结点
//while(Lhead->next)
// Phead = Phead->next;
//Lhead = Phead->next;
//while(Phead->next)
//{
// Phead->next->next=Phead;
// Phead->next = NULL;
// }
}
标签:head,list,next,链表,single,Phead,逆序
From: https://www.cnblogs.com/lu-ciana/p/18166796