头插法:
分析:
第一次循环:

第二次循环:

后续循环也是以此类推
代码:
typedef struct LinkList {
int data;
struct LinkList* next;
}LinkList;
//单链表的逆置,头插法
LinkList reverseList1(LinkList* L) {
//定义两个指针
LinkList* p, * q;
p = L->next;
L->next = NULL;
while(p != NULL) {
q = p->next;//先存储p的下一个结点,方便进行下一次循环
p->next = L->next;//把p结点的next域指向L的下一个结点
L->next = p;//然后将头结点指向p,就让p成为了首元素
p = q;//将下一个要处理的结点赋给p
}
return L;
}
该文章介绍了如何使用头插法来逆置单链表。在头插法中,通过定义两个指针p和q,逐步将链表中的节点插入到新的链表头部,从而实现链表的反转。过程中,首先存储p节点的下一个节点q,然后将p的next指向L的next,接着更新L的next为p,最后移动p到q,依次类推,直至遍历完整个链表。
头插法&spm=1001.2101.3001.5002&articleId=130111813&d=1&t=3&u=97b504f98fca4ea5a4e693392d98d23b)
1万+

被折叠的 条评论
为什么被折叠?



