题解 | #链表中的节点每k个一组翻转#

其实就是题目翻转链表的k个节点连续执行多次,每次都更换头结点。

import java.util.*;
public class Solution {
    public ListNode reverseKGroup (ListNode head, int k) {
        if (head == null || head.next == null || k == 1) return head;

        int len = 0;
        ListNode temp = head;
        while (temp != null) {
            temp = temp.next;
            len++;
        }
        
        ListNode newHead = new ListNode(0);
        newHead.next = head;
        ListNode pre = newHead;
        for (int j = k ; j <= len; j += k) {            
            ListNode cur = newHead.next;
            for (int i = 1; i <= k; i++) {
                ListNode curNext = cur.next;
                cur.next = newHead.next;
                newHead.next = cur;
                cur = curNext;
            }
            head.next = cur;
            
            newHead = head;
            head = cur;
        }
        return pre.next;
    }
}
全部评论

相关推荐

01-29 15:45
已编辑
华中科技大学 前端工程师
COLORSN:可以试一下,小厂看技术栈是不是很落后,如果太拉胯就别去,个人认为有实习氛围比你自己琢磨要高效不少,然后就是小厂其实也有可能会问的很难,这都比较难说,还是看自己项目含金量够不够,寒假还能不能推进学习再选择,毕竟去实习过年就10天假了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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