leetcode 25. Reverse Nodes in k-Group

    技术2025-11-13  21

    Reverse Nodes in k-Group /** * 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 { public ListNode reverseKGroup(ListNode head, int k) { if(k==1){ return head; } LinkedList<ListNode> se = new LinkedList<ListNode>(); int rk = k-1; reverseSubList(head,rk,se); ListNode newHead = se.get(0); for(int i=0;i+2<se.size();i+=2){ se.get(i+1).next=se.get(i+2); } return newHead; } public ListNode reverseSubList(ListNode head, int k,LinkedList<ListNode> se) { int l=0; ListNode cHead=head; while(l<=k){ if(cHead==null){ se.add(head); return null; } cHead=cHead.next; l++; } ListNode tmp=head; ListNode tail = head; int c=0; while(tail.next!=null && c<k ){ tmp=head; head=tail.next; tail.next=tail.next.next; head.next=tmp; c++; } se.add(head); se.add(tail); reverseSubList(tail.next, k,se); return head; } }
    Processed: 0.024, SQL: 9