翻转k个链表

来源:互联网 发布:TSP贪心算法时间复杂度 编辑:程序博客网 时间:2024/06/13 04:47
/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */class Solution {    public ListNode reverseKGroup(ListNode head, int k) {         if(head == null || k == 1) return head;          ListNode dummy = new ListNode(0);          dummy.next = head;          ListNode pre = dummy;          int i = 0;          while(head != null){              i++;              if(i % k ==0){                 pre = reverse(pre, head.next);                 head = pre.next;             }else {                 head = head.next;            }         }         return dummy.next;    }    public static ListNode reverse(ListNode pre,ListNode next){        ListNode last = pre.next;        ListNode cur = last.next;        while(cur!=next){            last.next = cur.next;            cur.next = pre.next;            pre.next = cur;            cur = last.next;        }        return last;    }}
原创粉丝点击