Leecode题知识点(25,61,82)

第25题:K 个一组翻转链表
主体函数
举例:1>2>3>4>5 k=3
ListNode end=prev; for(int i=0;i<k&&end!=null;i++){ end=end.next; }
先让end和prev相等
然后遍历,让end往下走
if(end==null)break;
end到头了,就断开
ListNode nextgroup=end.next;
给断开后的起名叫nextgroup
ListNode start=prev.next; end.next=null;//把划分好的单独切了出来 prev.next = reverse(start);
翻转以K为准划分好的那段

start.next = nextgroup;

翻转前的 start = 1,现在变成了这一组的尾巴。让它指向下一组的开头

prev = start;

现在这一组已经翻转完成,prev 要移动到这一组的尾巴,作为下一组翻转时的「前置节点」。
翻转逻辑:
举例:1>2>3>4
prev=null ,curr=head(1)
while(curr!=null){
ListNode next=curr.next(next=2) //断开,保存后面的节点
curr.next=prev; //改变指针的方向
现在:
1>null
2>3>4>null //断开后的结果
prev=curr; //prev前进。prev=1
curr=next;//curr前进。curr=2
接着进行第二次循环
ListNode next=curr.next(next=3)
curr.next=prev; //curr=2,让curr.next=1(2>1)
现在:
2>1>null;
3>4null;
prev=curr; //prev前进。prev=2
curr=next;//curr前进。curr=3
第三次循环
ListNode next=curr.next(next=4)
curr.next=prev; //curr.next=2
现在:
3>2>1>null
4>null
prev=curr; 3
curr=next; 4
第四次循环
ListNode next=curr.next;
curr.next=prev;
现在:
4>3>2>1>null
不满足循环条件curr!=null,退出循环
第61题:旋转链表
1.计算链表长度
遍历链表,得到长度为n
注意:如果k>=n,其实就是k%n次旋转

2. 找到新头和新尾

新尾节点应该是 第 (n - k) 个节点
新头节点就是新尾的下一个节点。
例子:
n = 5, k = 2
新尾 = 第 5-2=3 个节点(值是 3)
新头 = 3.next = 4

3. 改指针

先断开在新尾的位置。
把原来的尾巴(值 5)指向原来的头(值 1),形成一个环。
1 → 2 → 3 → 4 → 5
↑ ↓ ------------> 4 → 5 → 1 → 2 → 3
└───────────┘
这里4也会被5带过去,因为4的next指向是5

k % n 的性质

如果 k < n 那么 k % n = k,等于什么都没做。

如果 k >= n 那么 k % n 会自动把它缩小到 [0, n-1] 的范围内。
所以 k = k % n; 一行代码,就已经同时处理了 k < n 和 k >= n 两种情况。


举例

假设 n = 5:
k = 2 → k % n = 2

k = 5 → k % n = 0(旋转一整圈,不需要动)

k = 12 → k % n = 2

k = 0 → k % n = 0
可以看到,取模运算天然就包含了 if (k >= n) 的逻辑
第82题:删除排序链表中的重复元素||
while(curr!=null){ boolean duplicate=false;
假设没有重复,如果有重复为true
if (duplicate) {
// duplicate 是 true 执行这里
} else {
// duplicate 是 false 执行这里
}

相关推荐
吃好睡好便好6 小时前
在Matlab中绘制横直方图
开发语言·学习·算法·matlab
仰泳之鹅6 小时前
【C语言】自定义数据类型2——联合体与枚举
c语言·开发语言·算法
x_yeyue9 小时前
三角形数
笔记·算法·数论·组合数学
念何架构之路10 小时前
Go语言加密算法
数据结构·算法·哈希算法
AI科技星10 小时前
《数学公理体系·第三部·数术几何》(2026 年版)
c语言·开发语言·线性代数·算法·矩阵·量子计算·agi
失去的青春---夕阳下的奔跑10 小时前
560. 和为 K 的子数组
数据结构·算法·leetcode
黎阳之光10 小时前
黎阳之光:以视频孪生重构智慧医院信息化,打造高标项目核心竞争力
大数据·人工智能·物联网·算法·数字孪生
丷丩11 小时前
三级缓存下MVT地图瓦片服务性能优化策略
算法·缓存·性能优化·gis·geoai-up
m0_6294947311 小时前
LeetCode 热题 100-----25.回文链表
数据结构·算法·leetcode·链表
ʚ希希ɞ ྀ12 小时前
单词拆分----dp
算法