Reverse Nodes in k-Group

来源:互联网 发布:淘宝上好的零食店铺 编辑:程序博客网 时间:2024/05/23 13:53
/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode reverseKGroup(ListNode head, int k) {        if (head == null || k <= 1) {            return head;        }        ListNode dummy = new ListNode(0);        ListNode prev = dummy;        ListNode node = head;        dummy.next = head;        int count = 0;        while (node != null) {            count++;            ListNode next = node.next;            if (count == k) {                prev = helper(prev, next);                count = 0;            }            node = next;        }        return dummy.next;    }        private ListNode helper(ListNode prev, ListNode next){        ListNode last = prev.next;        ListNode cur = last.next;        while (cur != next) {            last.next = cur.next;            cur.next = prev.next;            prev.next = cur;            cur = last.next;        }        return last;    }}

0 0
原创粉丝点击