classSolution{ funreverseKGroup(head: ListNode?, k: Int): ListNode? { if (head == null) returnnull var tail: ListNode? = head for (i in1..k) { if (tail == null) return head tail = tail.next } val newHead = reverse(head, tail) head.next = reverseKGroup(tail, k) return newHead } // 翻转链表,返回新链表头节点 privatefunreverse(head: ListNode?, tail: ListNode?): ListNode? { var pre: ListNode? = null var cur: ListNode? = head while (cur != tail) { val next = cur?.next cur?.next = pre pre = cur cur = next } return pre } }
/** * 翻转链表,返回翻转后的头节点 */ privatefunreverse(head: ListNode?): ListNode? { var pre: ListNode? = null var cur: ListNode? = head while (cur != null) { val next = cur.next cur.next = pre pre = cur cur = next } return pre } }