码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 单链表OJ题——11.随机链表的复制


    11.随机链表的复制

    138. 随机链表的复制 - 力扣(LeetCode)

    /*
    解题思路:
    此题可以分三步进行:
    1.拷贝链表的每一个节点,拷贝的节点先链接到被拷贝节点的后面
    2.复制随机指针的链接:拷贝节点的随机指针指向被拷贝节点随机指针的下一个位置
    3.拆解链表,把拷贝的链表从原链表中拆解出来
    */
    
    1. class Solution {
    2. public:
    3. Node* copyRandomList(Node* head) {
    4. // 1.拷贝链表,并插入到原节点的后面
    5. Node* cur = head;
    6. while(cur)
    7. {
    8. Node* next = cur->next;
    9. Node* copy = (Node*)malloc(sizeof(Node));
    10. copy->val = cur->val;
    11. // 插入
    12. cur->next = copy;
    13. copy->next = next;
    14. // 迭代往下走
    15. cur = next;
    16. }
    17. // 2.置拷贝节点的random
    18. cur = head;
    19. while(cur)
    20. {
    21. Node* copy = cur->next;
    22. if(cur->random != NULL)
    23. copy->random = cur->random->next;
    24. else
    25. copy->random = NULL;
    26. cur = copy->next;
    27. }
    28. // 3.解拷贝节点,链接拷贝节点
    29. Node* copyHead = NULL, *copyTail = NULL;
    30. cur = head;
    31. while(cur)
    32. {
    33. Node* copy = cur->next;
    34. Node* next = copy->next;
    35. // copy解下来尾插
    36. if(copyTail == NULL)
    37. {
    38. copyHead = copyTail = copy;
    39. }
    40. else
    41. {
    42. copyTail->next = copy;
    43. copyTail = copy;
    44. }
    45. cur->next = next;
    46. cur = next;
    47. }
    48. return copyHead;
    49. }
    50. };

     

  • 相关阅读:
    机器学习——梯度下降算法
    家电行业趋势:2022从三方面把握家电产品升级方向
    实例分割-二阶段模型-RCNN系列介绍
    企业办公新模式,随时随地云上协同!
    【HMS Core】【FAQ】【AR Engine】AR Engine常见问题合集
    ffmpeg深度学习滤镜
    深度学习基础网络代码学习(pytorch)
    行驶证识别易语言代码
    【uniapp】点击多选的一种写法
    MIT课程分布式系统学习02——RPC and threads
  • 原文地址:https://blog.csdn.net/2301_76653277/article/details/134545456
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号