菜菜的leetcode刷题记录_记录贴(单链表)

跟着labuladong刷题笔记开始刷题,好多年没有做过题了,近几年除了应付考试外,都是些文档性质的工作,近期开始准备紧跟dalao步伐,重新学习。

合并两个有序链表:双指针

合并 k 个有序链表:优先级队列、最小堆,后续还需要继续学习)

寻找单链表的倒数第 k 个节点:只遍历一次的双指针解法

寻找单链表的中点:双指针解法,fast=fast.next.xet

判断单链表是否包含环并找出环起点:双指针解法,fast=fast.next.next,当slow与fast相遇

判断两个单链表是否相交并找出交点:双指针,fast比slow多走了环的长度k的整数倍。所以相遇时slow走了k,环起点与相遇点距离m,head距离环起点k-m,环为k,fast再走k-m。

两个链表是否相交:P1遍历A再遍历B,P2遍历B再遍历A,P1==P2为条件

反转链表:(1)整个反转链表(2)递归(3)后驱节点记录(4)反转之后的head节点和后面的节点连起来。

反转列表的一部分:前进到反转的起点触发

K个一组反转:递归的反转一部分链表(1)先反转以head开头的K个元素,将K+个元素作为head调用reverseKGroup函数(3)不足k个,不需要反转

判断回文链表:寻找回文串的核心思想是从中心向两端扩展,采用栈的思想,不断递归。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值