题解 | #牛群的重新分组#

牛群的重新分组

https://www.nowcoder.com/practice/267c0deb9a6a41e4bdeb1b2addc64c93

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param k int整型 
     * @return ListNode类
     */
       public ListNode reverseKGroup (ListNode head, int k) {
       if(head==null || k<=1)return head;
        //统计链表长度
        int len=0;
        ListNode node=head;
        while(node!=null){
            len++;node=node.next;
        }
        int r=len/k;
        ListNode dummy = new ListNode(-1);
        dummy.next=head;
        ListNode pre=dummy;
        ListNode cur=head;
        for(int i=0;i<r;i++){
            for(int j=1;j<k;j++){
                ListNode next=cur.next;
                cur.next=next.next;
                next.next=pre.next;
                pre.next=next;
            }
            pre=cur;
            cur=cur.next;
        }
    return dummy.next;
    }
}

编程算法题详解集锦 文章被收录于专栏

牛客top101+牛客top202+leetcode热题

全部评论

相关推荐

Gaynes:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务