题解 | #链表中的节点每k个一组翻转#
链表中的节点每k个一组翻转
https://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e
public class Solution { /** * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode reverseKGroup (ListNode head, int k) { // write code here // 建立尾表 ListNode tail = head; // 循环遍历表 for (int i = 0; i < k; i++) { // 如果不足k个,则直接返回 if (tail == null){ return head; } tail = tail.next; } // 翻转链表 前序和当前节点 ListNode prev = null; ListNode cur = head; for (int i = 0; i < k; i++) { ListNode temp = cur.next; cur.next = prev; prev = cur; cur = temp; } // 当前头变成尾 head.next = reverseKGroup(tail,k); return prev; } }