【牛客网-名企高频面试题】NC50 链表中的节点每k个一组翻转

链表中的节点每k个一组翻转

在这里插入图片描述

解题思路

在这里插入图片描述

public class Solution {
    public static ListNode reverseKGroup(ListNode head, int k) {
		if(head == null || head.next == null || k < 2) return head;
		ListNode dummy = new ListNode(0);
		dummy.next = head;
		ListNode pre = dummy, cur = head, temp;
		int len = 0;
		while (head != null) {
			len ++ ;
			head = head.next;
		}
		for (int i = 0; i < len / k; i ++ ) {
			for (int j = 1; j < k; j ++ ) {
				temp = cur.next;
				cur.next = temp.next;
				temp.next = pre.next;
				pre.next = temp;
			}
			pre = cur;
			cur = cur.next;
		}
		return dummy.next;
	}
}
posted @ 2021-03-15 22:40  your_棒棒糖  阅读(36)  评论(0)    收藏  举报