反转链表
前言
//==================================================================
// 《剑指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