• 算法每日一题(反转单链表)C语言版


    在本篇文章里,我将分享一道很经典的算法题———反转链表,并且分享多种方法去解决方法,希望可以帮助到你😀😀😀

    反转链表_牛客题霸_牛客网

    题目描述:

    给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

    数据范围: 0≤n≤1000

    要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。

    如当输入链表{1,2,3}时,

    经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

    以上转换过程如下图所示:

    示例1:

    输入:{1,2,3}

    返回值:{3,2,1}

    示例2

    输入:{} 返回值:{}

    说明:空链表则输出空

    以下代码均经过牛客测试,均正确,请放心测试😊😊😊

    解法1:(迭代)

    解题思路:

    n1=NULL,n2=phead,n3=phead->head;

    然后将链表的导向改变就可以进行链表的反转了👌

    n3的作用是保存下一个地址,避免找不到后面的链表

    代码:

    1. struct ListNode* ReverseList(struct ListNode* head)
    2. {
    3. struct ListNode *n1=NULL,*n2=head,*n3=head->next;
    4. if(head==NULL&&head->next==NULL)
    5. return NULL;
    6. else
    7. {
    8. while(n2)
    9. {
    10. n2->next=n1;//反转
    11. //迭代
    12. n1=n2;
    13. n2=n3;
    14. if(n3!=NULL)
    15. n3=n3->next;
    16. }
    17. return n1;
    18. }
    19. }

    结果展示:

    解法2:(头插)

    解题思路:

    再设一个链表B,利用链表的头插法将原链表头插到链表B上,继而return 链表B即可

    代码:

    1. struct ListNode* ReverseList(struct ListNode* head)
    2. {
    3. struct ListNode *cur=head,*next=head->next,*newhead=NULL;
    4. while(cur!=NULL)
    5. {
    6. next=cur->next;
    7. //头插
    8. cur->next=newhead;
    9. newhead=cur;
    10. cur=next;
    11. }
    12. return newhead;
    13. }

    结果展示:

    最后

    十分感谢你可以耐着性子把它读完和我可以坚持写到这里,送几句话,对你,也对我:

    > 1.做==更好的自己==,而不是完美的别人。

    > 2.谁都愿意做自己喜欢的事情,可是,做你该做的事情,才叫成长。

    > 3.活成一个真正有形的人,而不是—摊肉、一团混乱不堪的情绪。

    > 4.放弃很容易,但坚持—定很酷。

    > 5.知识不是力量,知识用起来才是力量。

    > 6.人生只有两个选择,要么忙着死,要么忙着活! ==熬得住就出众,熬不住就出局==,你的野心很大,所以没资格停下。

    最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)

    **愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚==菜鸟==逐渐成为==大佬==。加油,为自己点赞!**

  • 相关阅读:
    MATLB|可视化学习(plot和bar)
    PyCharm新手入门
    【2023】Redis相关面试题
    树莓派4b开机自启sh脚本
    Programming Differential Privacy第九章
    北漂跳槽(跳坑)经历总结
    opencv图像的本质
    【求助】基于Ascend910的MindSpore训练无法复现GPU上的模型效果
    学会Redis这一篇就够了(1)
    浏览器上写代码,4核8G微软服务器免费用,Codespaces真香
  • 原文地址:https://blog.csdn.net/m0_68865259/article/details/127115475