Advertisement
rajeshinternshala

Untitled

Dec 29th, 2023
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.71 KB | None | 0 0
  1. /**
  2.  * Definition for singly-linked list.
  3.  * public class ListNode {
  4.  *     int val;
  5.  *     ListNode next;
  6.  *     ListNode() {}
  7.  *     ListNode(int val) { this.val = val; }
  8.  *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  9.  * }
  10.  */
  11. class Solution {
  12.   public ListNode reverseKGroup(ListNode head, int k) {
  13.         ListNode resHead = null;
  14.         ListNode cur = head;
  15.         int totalNodes = 0;
  16.         while (cur != null) {
  17.             cur = cur.next;
  18.             totalNodes++;
  19.         }
  20.         cur = head;
  21.         ListNode prevTail = null;
  22.         int pNodes = 0;
  23.         while (cur != null) {
  24.             int ck = k;
  25.             ListNode curTail = cur;
  26.             ListNode prev = null;
  27.             while (ck > 0 && cur != null) {
  28.                 pNodes++;
  29.                 ListNode next = cur.next;
  30.                 cur.next = prev;
  31.                 prev=cur;
  32.                 cur = next;
  33.                 ck--;
  34.             }
  35.             ListNode curHead = prev;
  36.             if (resHead == null) {
  37.                 resHead = curHead;
  38.  
  39.             }
  40.             ListNode cr = curHead;
  41.             while (cr!=null){
  42.                 System.out.println(cr.val);
  43.                 cr=cr.next;
  44.             }
  45.            // System.out.println("-----");
  46.  
  47.             if (prevTail != null) {
  48.                 prevTail.next = prev;
  49.                 prevTail = curTail;
  50.                 prevTail.next = null;
  51.             }
  52.             if (prevTail == null) {
  53.                 prevTail = curTail;
  54.             }
  55.             if (totalNodes - pNodes < k) {
  56.                 prevTail.next = cur;
  57.                 return resHead;
  58.             }
  59.         }
  60.         return resHead;
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement