LeetCode206

题目链接

https://leetcode-cn.com/problems/reverse-linked-list/

复杂度

  1. 时间复杂度:O(n)

  2. 空间复杂度:O(1)

思路

见下面参考即可。可以用迭代法或者递归,上篇文章写的两种都有,本文只写递归解法。

注意

  1. 注意 . 和 -> 的写法(什么时候用哪个)

  2. 注意一下LeetCode上提交代码的写法,比如public:放哪个位置啊之类的

  3. 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;
    }
};

参考

  1. 参考视频:https://www.bilibili.com/video/BV18Z4y1P7RQ/?spm_id_from=333.788.recommend_more_video.5

  2. 参考博文:https://leetcode-cn.com/problems/reverse-linked-list/solution/dong-hua-yan-shi-206-fan-zhuan-lian-biao-a7rx/

原文地址:https://www.cnblogs.com/OFSHK/p/14532864.html