高频算法题的思路总结提纲:链表篇

89 阅读1分钟

1.leetcode 25 k个一组翻转链表

思路:

  1. 先实现区间内翻转链表
  2. 遍历循环区间翻转链表
  3. 将翻转后的链表组,首尾相连

2.leetcode 160 相交链表

思路:

  1. 同时按a->b以及b->a的方式

3. leetcode 23 合并K个有序链表

思路:

  1. 先合并两个链表
  2. 再找到中点,递归合并左链表组和右链表组
  3. 合并合并后的左半链表和右半链表

4. leetcode 143 重排链表

思路:

  1. 获取中点
  2. 从中点断开
  3. 交替合并

5. leetcode 142 环形链表2

思路:

  1. 快慢指针第一次相遇,把快指针移动到链表头,并降速,第二次相遇处即为入口

6. leetcode 82 删除排序链表中的重复元素

思路:

  1. 哑节点+循环迭代遍历next和next.next

7. leetcode 1367 二叉树的列表

  1. 对根节点dfs+对左右子树递归

8. leetcode 86 分割链表

  1. 分两个链表partition,最后首尾相连即可