Leetcode热题100 Day3

十六、相交链表

思路一:可以先遍历两个链表,找到长度差,然后长的先遍历这个差值,再二者同时遍历。

思路二:用哈希集合遍历第一个链表,然后遍历第二个链表,看是否出现在哈希集合。

思路三:遍历第一个,所有遍历过的点做好标记,然后再遍历第二个,看是否遍历到有做标记的点。

十七、反转链表

朴素。

十八、回文链表

思路一:可以先把链表转化为数组,然后两指针遍历。

思路二:可以把链表的后半段逆转,然后和前半段进行比较。

十九、环形链表

思路一:所有遍历过的点存放在哈希表里。这样比较严谨。我的做法是遍历过的节点的值都改编成非常大或非常小的值。

思路二:快慢指针。类似龟兔赛跑,兔子先进入循环,乌龟后进入循环,然后二者总会在循环里相遇。

二十、环形链表II

朴素

二十一、合并两个有序链表

思路一:迭代,此时两个指针分别指向两个链表,不断比较大小。

思路二:递归。这个方法可以减小代码量。

二十二、两数相加

遍历即可,比较朴素。

二十三、删除链表的倒数第N个结点

思路一:先数长度,然后删掉第L-N+1个结点。

思路二:所有结点依次入栈。然后pop n次。取栈顶元素,改变它的指针。

二十四、两两交换链表中的结点

思路不难,但是递归写起来比迭代节省太多时间了!

二十五、随机链表的复制

思路一:哈希表。因为有random,所以第一遍遍历先不管指向关系,只把结点构造出来。然后第二遍遍历利用哈希表得到next和random。

思路二:节点分裂。直接就在旁边拷贝。其实跟哈希表本质思路一样,都是方便找random。

二十六、排序链表

思路一:不考虑空间复杂度的话,直接把链表转成数组,然后对数组进行排序,再构造一个新的链表。

思路二:考虑空间复杂度,需要把数组排序的那一套用在链表中。最适合链表的算法是归并排序,因为直接从中间断开即可。怎么找中点?快慢指针。

相关推荐

  1. Leetcode100 Day3

    2024-07-21 18:18:03       14 阅读
  2. Leetcode100 Day4

    2024-07-21 18:18:03       16 阅读
  3. Leetcode100

    2024-07-21 18:18:03       49 阅读
  4. LeetCode100

    2024-07-21 18:18:03       29 阅读
  5. Leetcode100

    2024-07-21 18:18:03       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 18:18:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 18:18:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 18:18:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 18:18:03       55 阅读

热门阅读

  1. SQL Server查询计划阅读及分析

    2024-07-21 18:18:03       16 阅读
  2. 【整理了一些关于使用swoole使用的解决方案】

    2024-07-21 18:18:03       15 阅读
  3. Vue中如何封装接口

    2024-07-21 18:18:03       19 阅读
  4. happens-before

    2024-07-21 18:18:03       14 阅读
  5. 如何实现宝塔面板免手机号登录?

    2024-07-21 18:18:03       17 阅读
  6. 自动化炒股:券商交易接口API调用方法

    2024-07-21 18:18:03       18 阅读
  7. Redis的过期删除策略与内存淘汰机制

    2024-07-21 18:18:03       20 阅读
  8. vivado INTERNAL_VREF

    2024-07-21 18:18:03       16 阅读
  9. 商品价格中也有“歧视”

    2024-07-21 18:18:03       15 阅读
  10. Unity3D UGUI适配不同分辨率详解

    2024-07-21 18:18:03       16 阅读
  11. 【Flask项目】文件分享系统(二)

    2024-07-21 18:18:03       17 阅读
  12. Spring框架中的设计模式:深入剖析

    2024-07-21 18:18:03       16 阅读
  13. 小程序发布流程?

    2024-07-21 18:18:03       13 阅读
  14. 软链接跟硬链接有什么区别

    2024-07-21 18:18:03       16 阅读
  15. 轻量级实现swiper造轮子思路

    2024-07-21 18:18:03       16 阅读
  16. 用 AI 来学习雅思英语写作

    2024-07-21 18:18:03       13 阅读