![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 53
链表
alone_yue
后端开发 算法 爱好健身打球游泳
展开
-
【Leetcode链表--连通节点的数量】817. 链表组件
链表--连通节点的数量原创 2022-07-04 11:06:39 · 243 阅读 · 0 评论 -
【Leetcode链表/数组--合并两/多个有序链表/数组】21/BM4.合并两个排序的链表 23/BM5.合并k个已排序的链表 378.有序矩阵中第 K 小的元素 373.查找和最小的 K 对数
文章目录Leetcode211.问题描述2.解决方案Leetcode211.问题描述2.解决方案原创 2021-12-02 12:55:38 · 328 阅读 · 1 评论 -
【腾讯面试-链表】根据链表中的某个节点反转链表
文章目录1.问题描述2.解决方案1.问题描述给定无序链表和一整数K,假设链表为1->2->3->4->5->6>7,K=4,那么返回以K为中心两边都反转的链表,应该为5->6>7->4->3->2->12.解决方案1.先按反转链表走,走到4的时候停下来,这时已经得到了链表4->3->2->1,并且记录5这个节点2.从5开始遍历到7,这时候把7->next=4,这样5->6>7-&g原创 2021-12-01 20:46:00 · 193 阅读 · 1 评论 -
【Leetcode链表】141.环形链表 142. 环形链表 II 287. 寻找重复数(有精彩的双指针应用和数学推导)
文章目录Leetcode1421.问题描述2.解决方案思路a.判断链表是否有环b.如果有环,如何找到这个环的入口代码实现:Leetcode1421.问题描述2.解决方案思路这道题目,不仅考察对链表的操作,而且还需要一些数学运算,主要分以下两个难点步骤a.判断链表是否有环双指针!b.如果有环,如何找到这个环的入口数学推导,光看代码根本体现不出来,现在已经记住了!代码实现:1.while一开始写了个错误版本,还一直没找见bug,原来是一开始fast就是等于s原创 2021-10-08 11:27:31 · 191 阅读 · 1 评论 -
【Leetcode链表】程序员面试金典-面试题 02.07. 链表相交
文章目录面试题 02.071.问题描述2.解决方案面试题 02.071.问题描述2.解决方案简单来说,就是求两个链表交点节点的指针。交点不是数值相等,而是指针相等,思路呢也很清晰为了o(n)的时间复杂度,我们通过统计长度然后对齐指针,然后同时移动判断是否相等即可!class Solution {public: ListNode* getIntersectionNode(ListNode* headA, ListNode* headB) { //统计长度原创 2021-10-08 10:21:01 · 92 阅读 · 1 评论 -
【Leetcode链表】19. 删除链表的倒数第 N 个结点(双指针经典应用!!)
文章目录Leetcode191.问题描述2.解决方案Leetcode191.问题描述2.解决方案思路非常经典因为题目特别要求遍历一遍,那遍历一遍找到倒数第n个节点,很快就会想到,快指针和慢指针,如果快指针到头了,如果慢指针就指向了目标节点就出来了,发现很好实现!1.双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了2.使用哨兵节点3.第一步做了检查,但是后面却一个空指针判断都没有,这原创 2021-10-08 09:18:18 · 62 阅读 · 0 评论 -
【Leetcode链表】206.反转链表 BM2.链表内指定区间反转 BM3.链表中的节点每k个一组翻转 24.两两交换链表中的节点(双指针法和递归法)
文章目录Leetcode2061.问题描述2.解决方案解法一:双指针法解法二:递归法Leetcode2061.问题描述2.解决方案解法一:双指针法解法二:递归法原创 2021-10-07 21:40:50 · 85 阅读 · 1 评论 -
【Leetcode链表】707. 设计链表(有删除,快速一条语句插入等操作!!)
文章目录Leetcode7071.问题描述2.解决方案注意点:代码实现点:整体代码:Leetcode7071.问题描述2.解决方案注意点:1.链表节点下标都是第0,1,2…个节点2.链表设计的时候使用了哨兵节点和成员变量size3.除此之外就是一些边界条件,什么index==size怎么插怎么删,注释都写得很清楚,这个没什么!代码实现点:1.单行实现插入操作void addAtHead(int val) { head->next=new ListNode(val原创 2021-10-07 21:21:18 · 50 阅读 · 1 评论 -
【Leetcode链表】203. 移除链表元素
文章目录Leetcode2031.问题描述2.解决方案a.不使用哨兵节点b.使用哨兵节点Leetcode2031.问题描述2.解决方案思路就是直接删除没什么好说的,但有以下两个实现细节:1.被删除的节点别忘了,释放掉内存,delete p2,不释放不会影响leetcode上的提交但这是个正确的习惯2.可以选择自己造一个虚拟哨兵节点统一处理删除操作,不分头节点和中间节点,也可以直接删除a.不使用哨兵节点1,删除头结点是while不是if2.删除完头节点要判断head==nullpt原创 2021-10-07 20:32:38 · 106 阅读 · 0 评论 -
【Leetcode链表】链表理论基础
文章目录1.链表的定义1.链表的定义原创 2021-10-07 17:36:06 · 92 阅读 · 1 评论