题目描述
翻转链表
样例
输入1->2->3->4->
输出 4->3->2->1->
算法1
(暴力枚举)
给定三个指针,一个工作指针p,一个p之前的指针pre,一个p之后的指针nextp,改变每次p的指向为pre,然后用p替换pre,用nextp替换p。最后返回pre就是要的头结点
时间复杂度
o(N)
参考文献
C++ 代码
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *p=head;
ListNode* pre=nullptr;
while(p)
{
ListNode *nextp=p->next;
p->next=pre;
pre=p;
p=nextp;
}
return pre;
}
};