news 2026/8/6 21:32:10

康复训练part3

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
康复训练part3

1.虚拟头结点

203. 移除链表元素 - 力扣(LeetCode)

class Solution { public: ListNode* removeElements(ListNode* head, int val) { int v=val; ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*cur=head; while(cur->next!=nullptr) { if(cur->next->val==v) { ListNode*tmp=cur->next; cur->next=cur->next->next; delete tmp; }else{ cur=cur->next; } } head=dummyhead->next; delete dummyhead; return head; } };

写的时候总是超时,最后才发现是忘记写cur=cur->next了....

这里要注意是否删除对应的cur结点位置变化

707. 设计链表 - 力扣(LeetCode)

class MyLinkedList { private: struct ListNode{ int val; ListNode*next; ListNode(int x=0):val(x),next(nullptr){} }; ListNode*head; int size; public: MyLinkedList():head(nullptr),size(0) {} int get(int index) { if(index<0||index>=size) { return -1; } ListNode*cur=head; for(int i=0;i<index;++i) { cur=cur->next; } return cur->val; } void addAtHead(int val) { ListNode*newNode=new ListNode(val); newNode->next=head; head=newNode; ++size; } void addAtTail(int val) { ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*newNode=new ListNode(val); ListNode*cur=head; for(int i=0;i<size;++i) { cur=cur->next; } newNode->next=cur->next; cur->next=newNode; head=head->next; delete dummyhead; ++size; } void addAtIndex(int index, int val) { if(index>size||index<0){ return; } ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*newNode=new ListNode(val); ListNode*cur=head; for(int i=0;i<index;++i) { cur=cur->next; } newNode->next=cur->next; cur->next=newNode; head=head->next; delete dummyhead; ++size; } void deleteAtIndex(int index) { if(index<0||index>=size) { return; } ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*cur=head; for(int i=0;i<index;++i) { cur=cur->next; } ListNode*tmp=cur->next; cur->next=tmp->next; delete tmp; head=head->next; delete dummyhead; size--; } };

206. 反转链表 - 力扣(LeetCode)

class Solution { public: ListNode* reverseList(ListNode* head) { if(head==nullptr){ return nullptr; } ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*cur=head->next; stack<ListNode*>Nodestack; while(cur!=NULL){ Nodestack.push(cur); cur=cur->next; } ListNode*cu=head; while(!Nodestack.empty()) { ListNode*tm=Nodestack.top(); Nodestack.pop(); cu->next=tm; cu=cu->next; } cu->next=nullptr; return head->next; } };

19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

class Solution { public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode*dummyhead=new ListNode(0); dummyhead->next=head; head=dummyhead; ListNode*fast=head; ListNode*slow=head; fast=fast->next; while(n--&&fast!=NULL) { fast=fast->next; } while(fast!=NULL) { fast=fast->next; slow=slow->next; } ListNode*tmp=slow->next; slow->next=slow->next->next; delete tmp; return head->next; } };

这里用虚拟头结点主要是因为想要避免为了得到删除节点的前一个节点,而对删除节点为头结点时的单独讨论

2.双指针

206. 反转链表 - 力扣(LeetCode)

class Solution { public: ListNode* reverseList(ListNode* head) { ListNode*temp; ListNode*pre=nullptr; ListNode*cur=head; while(cur) { temp=cur->next; cur->next=pre; pre=cur; cur=temp; } return pre; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/6 21:29:46

基于COMSOL的张拉完整性应用

筱一尘 关键词&#xff1a;COMSOL&#xff1b;张力完整性&#xff1b;悬浮桌&#xff1b;柔性连接 “张力完整性”一词由工程师兼建筑师巴克敏斯特富勒在 20 世纪 60 年代首次提出。张力完整性是基于单个刚性构件&#xff08;如管或梁&#xff09;和柔性构件(如电线或电缆)组成…

作者头像 李华
网站建设 2026/8/6 21:29:40

我帮团队规范Git分支:5人3周踩坑实录

我帮团队规范Git分支&#xff1a;5人3周踩坑实录前不久接了个内部工具重构项目&#xff0c;客户是个做电商SaaS的团队&#xff0c;大概5个人。说实话&#xff0c;他们的Git使用混乱到让我惊讶——main分支上直接改代码&#xff0c;feature分支随便创建又随便删&#xff0c;有次…

作者头像 李华
网站建设 2026/8/6 21:28:15

如何快速掌握音乐解锁神器:浏览器中的音频格式转换终极指南

如何快速掌握音乐解锁神器&#xff1a;浏览器中的音频格式转换终极指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: …

作者头像 李华
网站建设 2026/8/6 21:26:37

【Google Meridian技术解析】端到端贝叶斯营销组合建模、ROI分析与预算优化

文章目录 Google Meridian技术解析&#xff1a;端到端贝叶斯营销组合建模、ROI分析与预算优化一、引言二、数据与因果边界2.1 最小数据结构2.2 DAG式思考先于采样 三、配置模型与ROI先验四、NUTS采样与收敛诊断五、Analyzer提取经营结论六、预算优化与报告复用七、总结 Google …

作者头像 李华
网站建设 2026/8/6 21:22:39

AI Agent如何让制造业从“人+系统”变成“系统+AI”?深度拆解智能体与数字员工的工程化落地路径

在制造业数字化转型的深水区&#xff0c;如何打破传统IT架构的数据孤岛&#xff0c;实现更高效的企业智能自动化&#xff0c;已成为行业关注的焦点。传统的“人系统”模式正面临人力成本攀升与决策响应迟缓的双重挑战。随着大模型技术的演进&#xff0c;探讨AI Agent如何让制造…

作者头像 李华