单链表逆置

来源:互联网 发布:淘宝c店详情页banner 编辑:程序博客网 时间:2024/06/07 01:25

明确题目要求不能使用额外的节点存储空间,额外的节点存储空间做中转。
在不使用额外存储节点的情况下使一个单链表的所有节点逆序?
可以通过迭代循环的思想来处理
使用头指针依次向后遍历,遇到数据结点时将相邻的两个前驱后继的关系进行一个逆置
首先考虑到头节点时空结点,略去头结点并释放
struct node *p= head;
head = head -> next;//头节点转换为首节点
free(p);
之后开始迭代循环
设置一个空指针pre和指向下一个结点的指针
struct node *pre =NULL,next = head -> next;
head -> next =pre;
pre = head;
head = next;
next = head -> next;
这里写图片描述

原创粉丝点击