《剑指Offer——24. 反转链表》代码

反转链表


前言

//==================================================================
// 《剑指Offer——24. 反转链表》代码
// 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
//==================================================================


一、示例

示例:

输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

二、代码解析

1.新建.cpp文件

代码如下(示例):

//==================================================================
// 《剑指Offer——24. 反转链表》代码
// 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
//==================================================================

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

class Solution
{
public:
	ListNode* reverseList(ListNode* pHead)
	{
		ListNode* pReversedHead = nullptr;
		ListNode* pPrev = nullptr;
		ListNode* pNode = pHead;

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

// 1-->2-->3-->NULL
// 3-->2-->1-->NULL
上一篇:时间管理技巧


下一篇:黑客练手入门| pwnable.kr—幼儿瓶—01:fd