[剑指offer]面试题16:反转链表

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[剑指offer]面试题16:反转链表相关的知识,希望对你有一定的参考价值。

面试题16:反转链表
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。链表结点定义如下:

struct ListNode
{
	int value;
	ListNode *next;
};

代码如下:

ListNode *ReverseList(ListNode *pHead)
{
	ListNode *pReversedHead = nullptr;
	ListNode *pNode = pHead;
	ListNode *pPrev = nullptr;
	while (pNode != nullptr)
	{
		ListNode *pNext = pNode->next;
		if (pNext == nullptr) pReversedHead = pNode;
		pNode->next = pPrev;
		pPrev = pNode;
		pNode = pNext;
	}
	return pReversedHead;
}

测试用例:
● 功能测试(输入的链表含有多个结点,链表中只有一个结点)。
● 特殊输入测试(链表头结点为NULL指针)。
本题考点:
● 考查应聘者对链表、指针的编程能力。
● 特别注重考查应聘者思维的全面性及写出来的代码的鲁棒性。

以上是关于[剑指offer]面试题16:反转链表的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer-代码的鲁棒性面试题24:反转链表

剑指Offer面试题24. 反转链表

剑指Offer - 面试题24:反转链表

剑指Offer系列之题16~题20

剑指offer demo之单链表反转

剑指offer demo之单链表反转