【力扣-206】反转链表

🖊作者 : Djx_hmbb
📘专栏 : 数据结构
😆今日分享 :
----------“覆蕉寻鹿”:
有的人把假的当成真的,而又有人把明明是真的事情当成假的,前者可以说是“黄粱美梦”,后面这种就是“覆蕉寻鹿”。以前有个樵夫打死了一头野鹿,因为一时带不回家,怕被其他人发现,就先用芭蕉叶把牠覆盖起来;后来樵夫去找鹿,忘记了所藏的地方,怎么也找不到,最后以为是自己做了一场梦。所以用“覆蕉寻鹿”来比喻把真实的事情看作梦幻的情况,也可用“覆鹿寻蕉”,都是一个意思。 ------谢一
在这里插入图片描述

✔题目链接 :

【力扣-203】

✔题目:

:>解题思路:三指针翻转法 和 头插法

在这里插入图片描述

✔法一(头插法):

:> 方法 : 每一个节点都进行头插 -> 直接新一个头指针 , 然后将原指针的结点依次赋值给新指针

struct ListNode* reverseList(struct ListNode* head){
    struct ListNode* cur = head;
    struct ListNode* newhead = NULL;

    //头指针为空时,返回头指针
    if (head == NULL)
    {
        return head;
    }
    //头指针不为空时,
    while (cur != NULL)
    {
        struct ListNode* next = cur->next;
        cur->next = newhead;
        newhead = cur;
        cur = next;
    }
    return newhead;
}

✔图解:

请添加图片描述

✔法二(三指针反转法):

struct ListNode* reverseList(struct ListNode* head) {
//三指针反转法
    if (head == NULL || head->next == NULL)
    {
        return head;
    }
    SLT* n1 = head;
    SLT* n2 = n1->next;
    SLT* n3 = n2->next;
    n1->next = NULL;
    while (n2)//
    {
      n2->next = n1;
      n1 = n2;
      n2 = n3;
      if(n3)
        n3 = n3->next;
    }
    return n1;
}

✔图解:

请添加图片描述


感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!

家人们,点个请添加图片描述再走呗~

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D. Star.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值