速记-k个一组反转

直接利用上一道的n-m反转

每次计算1-k如果小于k直接返回head,否则就是利用上面方法反转1-k的节点,随后此时返回当前的头节点pre,之前的head变成了终结点,也就是head.next再次新一轮递归----会做到这里就差不多了
        if(head==null) return head;
        int cnt = 0;
        ListNode curr = head;
        ListNode pre = head;
  
        while(curr!=null){
            cnt++;    
            curr = curr.next;   
            if(cnt>=k) break;
        }
       
        if(cnt<k) return head;
        pre = reverse(head,1,k);
        head.next = reverseKGroup(head.next,k);
        return pre;
全部评论

相关推荐

07-24 03:49
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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