题目:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
方法:使用双指针法
#include<iostream>
using namespace std;
struct LinkNode
{
int val;
LinkNode* next;
LinkNode(int val) :val(val), next(nullptr) {}
};
void printfLinkNode(LinkNode* head)
{
LinkNode* cur = head;
while (cur)
{
cout << cur->val<<" " ;
cur = cur->next;
}
cout << endl;
}
//双指针法
LinkNode* cur = head;
LinkNode* pre = nullptr;
LinkNode* temp;
while (cur)
{
temp = cur->next;// 保存一下 cur的下一个节点,因为接下来要改变cur->next
cur->next = pre;//翻转操作
// 更新pre 和 cur指针
pre = cur;
cur = temp;
}
cout << "翻转后的链表:";
printfLinkNode(pre);
system("pause");
}