明确题目要求不能使用额外的节点存储空间,额外的节点存储空间做中转。
在不使用额外存储节点的情况下使一个单链表的所有节点逆序?
可以通过迭代循环的思想来处理
使用头指针依次向后遍历,遇到数据结点时将相邻的两个前驱后继的关系进行一个逆置
首先考虑到头节点时空结点,略去头结点并释放
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;
单链表逆置
最新推荐文章于 2022-01-24 14:16:37 发布