目录
- 题目:
- 解析:
- 代码:
题目:
链接: link
解析:
代码:
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {/**prev: 用来头插tmp: 每次头插前记录一下,好进行下一次头插*/public ListNode reverseKGroup(ListNode head, int k) {ListNode cur = head;int n = 0;while(cur != null){cur = cur.next;n++;}n = n / k;//统计需要翻转链表几次cur = head;ListNode newHead = new ListNode(0);ListNode prev = newHead;for(int i = 0; i < n; i++){ListNode tmp = cur;for(int j = 0; j < k; j++){ListNode next = cur.next;cur.next = prev.next;prev.next = cur;cur = next; }prev = tmp;}//把后面不需要逆序的连接上prev.next = cur; return newHead.next;}
}