力扣热题100 k个一组反转链表题解

题目:

代码:

Go 复制代码
func reverseKGroup(head *ListNode, k int) *ListNode {
	cur := head
	for i := 0; i < k; i++ {
		if cur == nil {
			return head
		}
		cur = cur.Next
	}
	newHead := reverse(head, cur)
	head.Next = reverseKGroup(cur, k)
	return newHead
}

func reverse(start, end *ListNode) *ListNode { //翻转
	var pre *ListNode
	cur := start
	for cur != end {
		nex := cur.Next
		cur.Next = pre
		pre = cur
		cur = nex
	}
	return pre
}
相关推荐
Shilong Wang几秒前
MLE, MAP, Full Bayes
人工智能·算法·机器学习
w_w方圆1 分钟前
1.序列式容器-vector&list
链表·stl·vector·数组·标准模板库
Theodore_10224 分钟前
机器学习(6)特征工程与多项式回归
深度学习·算法·机器学习·数据分析·多项式回归
知花实央l4 分钟前
【算法与数据结构】拓扑排序实战(栈+邻接表+环判断,附可运行代码)
数据结构·算法
lingling00911 分钟前
机械臂动作捕捉系统选型指南:从需求到方案,NOKOV 度量光学动捕成优选
人工智能·算法
吃着火锅x唱着歌21 分钟前
LeetCode 410.分割数组的最大值
数据结构·算法·leetcode
Benny_Tang43 分钟前
题解:P7989 [USACO21DEC] Bracelet Crossings G
c++·算法
YSRM1 小时前
Leetcode+Java+图论+最小生成树&拓扑排序
java·leetcode·图论
YSRM1 小时前
Leetcode+Java+图论+并查集
算法·leetcode·图论
小白杨树树1 小时前
【C++】力扣hot100错误总结
c++·leetcode·c#