21.删除链表倒数第k个节点
思路:采用先遍历k个位置,在用双指针同时遍历。
22.找到链表环的入口
思路:map、判圈法(先一步两步、找到哟圈之后在一步一步就会找到入口)
23.两个链表的第一个重合点
思路:总会相遇的,空指针也算
24.链表倒置
思路:常规思路
25.两链表相加
思路:通过反转在相加
26.重排链表
思路:反转链表的应用
27.回文链表
思路:反转链表的应用
28.展开多级链表为双向链表
思路:dfs存入nums[]数组中,在循环从新赋值一下指针。
29.排序循环链表
需求:往已经排序号的循环链表中插入一个数,使得有序。
思路:之前通过了,现在写通不过,考虑的情况较多,又一个朴素的写法,先找出最小的节点,然后找到插入的位置。
30.插入、删除和随机访问都是 O(1) 的容器
思路:map+slice就行,在slice删除的时候,可以考虑将当前位置和最后一个位置进行交换后在删除,map记录数组值的index。思考:我不采用slice,根据map的随机访问,但是用例无法通过。