力扣热题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
}
相关推荐
qq_416018722 分钟前
实时数据可视化库
开发语言·c++·算法
格林威2 分钟前
工业相机参数解析:曝光时间与运动模糊的“生死博弈”
c++·人工智能·数码相机·opencv·算法·计算机视觉·工业相机
2401_8732046516 分钟前
C++中的策略模式进阶
开发语言·c++·算法
xushichao198921 分钟前
C++中的职责链模式实战
开发语言·c++·算法
大鹏说大话28 分钟前
数据库查询优化全攻略:从索引设计到架构演进
算法
小O的算法实验室28 分钟前
2025年IEEE TETCI SCI2区,一种用于二次无约束二进制优化的协同神经动力学算法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
2301_8184190134 分钟前
C++中的协程编程
开发语言·c++·算法
add45a36 分钟前
C++中的工厂方法模式
开发语言·c++·算法
無限進步D44 分钟前
二分算法 cpp
算法
xushichao198944 分钟前
C++中的工厂模式高级应用
开发语言·c++·算法