题目链接
https://leetcode-cn.com/problems/reverse-linked-list/
复杂度
-
时间复杂度:O(n)
-
空间复杂度:O(1)
思路
见下面参考即可。可以用迭代法或者递归,上篇文章写的两种都有,本文只写递归解法。
注意
-
注意 . 和 -> 的写法(什么时候用哪个)
-
注意一下LeetCode上提交代码的写法,比如public:放哪个位置啊之类的
-
NULL是大写,不是null,这俩意义不一样
AC代码
class Solution
{
public:
ListNode* reverseList(ListNode* head)
{
if(head==NULL||head->next==NULL) return head;
ListNode *pre=NULL,*cur=head; // cur指向链表中的头结点
while(cur!=NULL)
{
ListNode *next=cur->next;// 更换当前结点的箭头方向
cur->next=pre;
pre=cur;
cur=next;
}
return pre;
}
};