反转链表(在原链表进行操作,不开辟新空间. O(N)

Posted ssopp24

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反转链表(在原链表进行操作,不开辟新空间. O(N)相关的知识,希望对你有一定的参考价值。

//定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
ListNode* ReverseList(ListNode* pHead) 

	if ( NULL == pHead || NULL == pHead->next )//链表为空和链表只有一个结点在这个语句进行处理
		return pHead;
	
	ListNode* pPrev = NULL;
	ListNode* pCur = pHead;
	ListNode* pNext = pHead->next;
        
	while ( NULL != pNext )
		pNext = pCur->next;
		pCur->next = pPrev;
            
		pPrev = pCur;
		pCur = pNext;
	
	
	return pPrev;

以上是关于反转链表(在原链表进行操作,不开辟新空间. O(N)的主要内容,如果未能解决你的问题,请参考以下文章

合并两个排序的链表使之依然有序(不开辟新空间在原链表上操作的非递归版本)

反转链表

反转链表(important!)

回文链表

BM1 反转链表

#yyds干货盘点# 面试必刷TOP101:反转链表