文章目录
1. K 个一组翻转链表 (困难)
地址: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/
2021/11/26
做题反思:
- 创建两个结点
- 基线条件
reverse(ListNode a, ListNode b)
循环条件记得改为b
class Solution {
public ListNode reverseKGroup(ListNode head, int k) {
// 新建两个结点
ListNode a = head, b = head;
for (int i = 0; i < k; i++) {
if (b == null) {
return a;
}
b = b.next;
}
ListNode newNode = reverse(a, b);
a.next = reverseKGroup(b, k);
return newNode;
}
ListNode reverse(ListNode a, ListNode b) {
ListNode pre = null, cur = a, nxt = a;
// 循环条件记得改为 b
while (cur != b) {
nxt = cur.next;
cur.next = pre;
pre = cur;
cur = nxt;
}
return pre;
}
}
前期知识铺垫: