Loading

摘要: 题目描述 思路 这些链表的有序性使这些操作都不难写。 前面在数组的题目里写过跳过重复元素的算法,这个和那个类似,用快慢指针写,但是由于这个是删除重复元素,所以我用了两个相邻的慢指针,左边的慢指针其实是为了保存真正的慢指针的上一个位置。 代码如下: class Solution { public: L 阅读全文
posted @ 2024-02-24 23:28 SaTsuki26681534 阅读(30) 评论(1) 推荐(0)
摘要: 题目描述 思路 首先用双指针法向后移动,分别获取链表的最后一个结点和倒数第k的结点,再把这部分连接到链表的头部即可,这部分的操作并不难。 但是实际这样写了之后就会发现,如果链表的长度小于k的话,这样的操作就是行不通的,需要对这种情况进行特殊处理。 但是在处理过程中发现这个操作有这样的特点:当链表长度 阅读全文
posted @ 2024-02-24 22:43 SaTsuki26681534 阅读(26) 评论(0) 推荐(0)
摘要: 题目描述 分析 这道题实际的解法是要通过递归来写,由于链表的特性:链表的任何一个子表都是链表。所以很多链表的算法用递归来写会非常简便。这里先尝试着写一下非递归的算法,再写一遍递归的算法。 非递归: class Solution { public: // void Insert(ListNode* n 阅读全文
posted @ 2024-02-24 20:22 SaTsuki26681534 阅读(26) 评论(1) 推荐(0)