链表的逆置

Posted wryy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表的逆置相关的知识,希望对你有一定的参考价值。

链表的逆置

带头结点

void InvertList(LinkList &L) {
	Lnode *p = L->next;
	if (p == NULL) return;
	Lnode *q = p->next;
	while (q != NULL ) {
		p->next = q->next;
		q->next = L->next;
		L->next = q;
		q = p->next;
	}
}

不带头结点

void InsertList_withoutHead(LinkList &L) {
	Lnode *p = L;
	if(p == NULL) return;
	Lnode *q = p->next;
	while (q != NULL) {
		p->next = q->next;
		q->next = L;
		L = q;
		q = p->next;
	}
}

代码链接,包括头插入法,尾插入法,前插操作,后插操作等基本操作。

以上是关于链表的逆置的主要内容,如果未能解决你的问题,请参考以下文章

双向链表的逆置(两种)

单向链表的逆置

链表的逆置(递归)

链表的逆置(带表头的单向链表)

如何用c语言实现单链表的逆置?

两种单链表的逆置详解