news 2026/1/12 9:22:38

LeetCode每日一题——K个一组翻转链表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode每日一题——K个一组翻转链表

题目描述:给定链表的头节点head,每k个节点一组进行翻转,返回操作后的链表。

示例:

输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]

我们可以先处理翻转整个链表的情况

ListNode* reverseList(ListNode* head) { ListNode* cur = head; ListNode* pre = nullptr; while (cur) { ListNode* tmp = cur->next; cur->next = pre; pre = cur; cur = tmp; } return pre; }

又因为k个一组,所以可以优化到翻转某一段区间上的链表

ListNode* reverseList(ListNode* m,ListNode* n){ ListNode* cur=m; ListNode* pre=nullptr; while(cur!=n){ ListNode* tmp=cur->next; cur->next=pre; pre=cur; cur=tmp; } return pre; }

最后递归,注意讨论k=1的情况

ListNode* reverseList(ListNode* m,ListNode* n){ ListNode* cur=m; ListNode* pre=nullptr; while(cur!=n){ ListNode* tmp=cur->next; cur->next=pre; pre=cur; cur=tmp; } return pre; } ListNode* reverseKGroup(ListNode* head, int k) { if(k==1){ return head; } ListNode* p=head; ListNode* q=head; for(int i=0;i<k;++i){ if(p==nullptr){ return head; } p=p->next; } ListNode* newHead=reverseList(q,p); q->next=reverseKGroup(p,k); return newHead; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/11 20:05:50

【程序员必备】LoRA微调技术面经总结:收藏级大模型学习指南

文章详细介绍了LoRA&#xff08;低秩适应&#xff09;技术&#xff0c;这是一种用于大模型高效微调的方法。LoRA通过低秩分解模拟参数变化&#xff0c;冻结原模型参数&#xff0c;只训练少量旁路矩阵&#xff0c;显著降低显存需求&#xff0c;使普通显卡也能进行大模型微调。文…

作者头像 李华
网站建设 2026/1/11 20:05:49

VonaJS AOP编程大杀器:外部切面

在VonaJS框架中&#xff0c;AOP编程包括三方面&#xff1a;控制器切面、内部切面和外部切面。控制器切面: 为 Controller 方法切入逻辑&#xff0c;包括&#xff1a;Middleware、Guard、Interceptor、Pipe和Filter内部切面: 在 Class 内部&#xff0c;为任何 Class 的任何方法切…

作者头像 李华
网站建设 2026/1/7 23:35:49

如何将Llama factory的训练结果导入Ollama中进行部署

&#x1f680; LlamaFactory 模型导入 Ollama 的步骤 整个过程主要分为两大部分&#xff1a;转换模型格式 和 导入 Ollama。 第一步&#xff1a;将 LlamaFactory 训练结果转换为 GGUF 格式 LlamaFactory 导出的模型权重通常是 Hugging Face 格式&#xff08;包含 safetensors 或…

作者头像 李华