力扣热题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
}
相关推荐
梓䈑8 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先
Adios79411 小时前
设置交集大小至少为2
数据结构·算法·leetcode
来一碗刘肉面17 小时前
栈的应用(表达式求值)
数据结构·算法
xiaowang1234shs18 小时前
怪兽轻断食技术深度测评:从断食计时引擎到AI识别算法的工程实践解析
数据库·人工智能·算法·macos·机器学习·p2p·visual studio
小果因子实验室18 小时前
量化研究--策略迁移算法1研究
算法
Web极客码19 小时前
如何用三段式确定性剪枝,为 LLM Agent 砍掉 35% 的 Token 成本?
服务器·人工智能·算法·机器学习
程序猿乐锅19 小时前
【数据结构与算法 | 第六篇】力扣1109,1094差分数组
java·算法·leetcode
wabs66620 小时前
关于图论【广度优先搜索的理论基础】
算法·图论·宽度优先
孤魂23320 小时前
逻辑回归算法
算法·机器学习·逻辑回归