diff --git a/src/main/java/com/cool/hot100/linkedlist/Num25.java b/src/main/java/com/cool/hot100/linkedlist/Num25.java new file mode 100644 index 0000000..78dd779 --- /dev/null +++ b/src/main/java/com/cool/hot100/linkedlist/Num25.java @@ -0,0 +1,70 @@ +package com.cool.hot100.linkedlist; + +import org.junit.Test; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author Cool + * @Date 23:30 2024/8/23 + * DayNumber 2 + * Hard 3 + **/ +public class Num25 { + + /** + * Date 2024/8/23 + * DayNumber 2 + * Hard 3 + * + * @param head + * @param k + * @return + */ + public ListNode reverseKGroup(ListNode head, int k) { + ListNode hair=new ListNode(0); + hair.next=head; + ListNode pre = hair; + while (head != null) { + for (int i = 0; i < k; i++) { + head = head.next; + if (head == null) { + return hair.next; + } + } + ListNode next=head.next; + ListNode[] reverse = reverse(head,next); + pre=nodeHead; + nodeHead.next = next; + node = next; + + } + return newHead; + + } + + private ListNode[] reverse(ListNode head,ListNode next) { + ListNode node = head; + ListNode pre = null; + while (node != null) { + ListNode net = node.next; + node.next = pre; + pre = node; + node = net; + } + return new ListNode[]{next,head}; + } + + @Test + public void test() { + ListNode node1 = new ListNode(7); + ListNode node2 = new ListNode(6, node1); + ListNode node3 = new ListNode(5, node2); + ListNode node4 = new ListNode(4, node3); + ListNode node5 = new ListNode(3, node4); + ListNode node6 = new ListNode(2, node5); + ListNode node7 = new ListNode(1, node6); + reverseKGroup(node7, 2); + } +}