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 执行这里
}

相关推荐
苏打豆12 分钟前
CRISP源码阅读——基于ROS2力矩反馈控制器与速度加速度零空间
c++·线性代数·算法·矩阵·机器人
蛋蛋的就会顺顺的40 分钟前
hot100——矩阵
java·数据结构·算法·leetcode·力扣
老歌老听老掉牙1 小时前
麻花钻切屑形态演变的力学机制与临界条件分析
python·算法·钻头
zhangfeng11331 小时前
国产GPU/AI算力芯片现状(修订完整版 · 截至2026年9月
人工智能·算法·ai编程·npu
学代码的CJY2 小时前
从代码出发理解时间复杂度与空间复杂度
数据结构·算法
白帽攻防录2 小时前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt
小O的算法实验室3 小时前
IEEE TEVC,基于精确与DQN群智能调度方法用于多目标异构USV
算法
可乐ea3 小时前
AI Agent 工具调用准确性评测:选择错误与参数错误分开测
大数据·人工智能·算法·大模型·工具调用·ai智能体·agent评测
上位机妹子4 小时前
C 语言 数组删除指定元素(快慢指针法)
c语言·数据结构·算法
心中有你02144 小时前
【路径规划】A*寻路算法最通俗易懂讲解(C语言完整实现+详细注释)
c语言·开发语言·算法