新闻详情

新闻详情

首页 / 资讯中心 / 详情

【链表】【中等】两数相加/倒N删除/两个交换/排序链表/LRU缓存

发布时间:2026/9/6 11:11:55来源:尧图网络
【链表】【中等】两数相加/倒N删除/两个交换/排序链表/LRU缓存
两数相加逐位相加原题链接两个链表逐位走当前位 % 10进位 / 10剩余 carry 标记进位publicstaticListNodeaddTwoNumbers(ListNodel1,ListNodel2){ListNoderesnewListNode(0);ListNodecurres;intcarry0;//进位标识//l1和l2全为null时跳出循环while(l1!null||l2!null){intx(l1!null)?l1.val:0;inty(l2!null)?l2.val:0;intsumxycarry;carrysum/10;intvalsum%10;cur.nextnewListNode(val);curcur.next;if(l1!null)l1l1.next;if(l2!null)l2l2.next;}if(carry1){cur.nextnewListNode(1);}returnres.next;}删除链表的倒数第N个节点快慢指针 固定间距原题链接注意考虑删除节点为第一个节点的情况-虚拟头节点publicListNoderemoveNthFromEnd(ListNodehead,intn){ListNodedummynewListNode(-1);dummy.nexthead;ListNodefastdummy;ListNodeslowdummy;for(inti0;in;i){fastfast.next;}while(fast!null){fastfast.next;slowslow.next;}slow.nextslow.next.next;returndummy.next;}两两交换链表中的节点两两一组判别原题链接注意先后顺序right.next 的改变应该在 left right.next 之前publicstaticListNodeswapPairs(ListNodehead){ListNodedummynewListNode(0);dummy.nexthead;ListNodeprevdummy;while(prev.next!nullprev.next.next!null){ListNodeleftprev.next;ListNoderightprev.next.next;prev.nextright;left.nextright.next;right.nextleft;prevleft;}returndummy.next;}排序链表归并排序原题链接使用插入排序会进行两层循环结果超时① 找中点↓② 切成两个链表↓③ 左右分别递归排序↓④ merge 两个有序链表publicstaticListNodesortList(ListNodehead){if(headnull||head.nextnull){returnhead;}//先使用快慢指针将链表分为两半ListNodeslowhead;ListNodefasthead;while(fast.next!nullfast.next.next!null){slowslow.next;fastfast.next.next;}ListNodep1head;ListNodep2slow.next;slow.nextnull;p1sortList(p1);p2sortList(p2);//合并两个有序链表returnmergeTwoLists(p1,p2);}//mergeTwoLists方法publicstaticListNodemergeTwoLists(ListNodel1,ListNodel2){ListNodedummynewListNode(0);ListNodeheaddummy;while(l1!nulll2!null){if(l1.vall2.val){head.nextl1;l1l1.next;}else{head.nextl2;l2l2.next;}headhead.next;}head.nextl1!null?l1:l2;returndummy.next;}LRU缓存原题链接addToHead这个节点现在不在链表里把它插到头部moveToHead这个节点已经在链表里先删掉再重新插到头部注意进行区分否则新节点会空指针异常publicclassLRUCache{privateclassDListNode{intkey;intval;DListNodeprev;DListNodenext;publicDListNode(intkey,intval){this.keykey;this.valval;}}intcapacity;//缓存容量intsize;//当前已经存在的节点数量MapInteger,DListNodemapnewHashMap();DListNodedummy_head;DListNodedummy_tail;publicLRUCache(intcapacity){this.capacitycapacity;size0;dummy_headnewDListNode(-1,-1);dummy_tailnewDListNode(-1,-1);dummy_head.nextdummy_tail;dummy_tail.prevdummy_head;}publicintget(intkey){if(!map.containsKey(key)){return-1;}DListNodenodemap.get(key);moveToHead(node);returnnode.val;}publicvoidput(intkey,intvalue){//如果key存在直接更新值if(map.containsKey(key)){DListNodenodemap.get(key);node.valvalue;moveToHead(node);return;}if(sizecapacity){//如果缓存已满删除尾部节点DListNodetaildummy_tail.prev;map.remove(tail.key);removeNode(tail);size--;}//添加新节点到头部DListNodenodenewDListNode(key,value);map.put(key,node);addToHead(node);size;}privatevoidremoveNode(DListNodenode){node.prev.nextnode.next;node.next.prevnode.prev;}//将节点添加到头部(节点原来不存在)privatevoidaddToHead(DListNodenode){node.prevdummy_head;node.nextdummy_head.next;dummy_head.next.prevnode;dummy_head.nextnode;}//将节点移动到头部(节点原来存在)privatevoidmoveToHead(DListNodenode){removeNode(node);addToHead(node);}}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI工具整合镜像部署指南:Docker本地化实践与性能优化 2026/9/6 11:51:01

AI工具整合镜像部署指南:Docker本地化实践与性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
如何一定程度地解决长任务的目标偏移问题 2026/9/6 11:51:01

如何一定程度地解决长任务的目标偏移问题

如何一定程度地解决长任务的目标偏移问题 长任务、记忆压缩与"目标账本":怎么把"完成权"从模型手里拿回来 《我在开启 Agent 的自进化》结尾,我留了个坑没讲透:长任务跑着跑着,模型就开始"自己认为收尾了…

阅读更多 →
IC虚拟机搭建全指南:Ubuntu环境与EDA仿真排错实战 2026/9/6 11:51:01

IC虚拟机搭建全指南:Ubuntu环境与EDA仿真排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Swin Transformer源码深度审计:窗口注意力机制与工程实践全解析 2026/9/6 11:51:01

Swin Transformer源码深度审计:窗口注意力机制与工程实践全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
电机驱动控制开发从入门到实战:核心链路与调试心法 2026/9/6 11:51:01

电机驱动控制开发从入门到实战:核心链路与调试心法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI Core数据一致性实战:SetFlag/WaitFlag与多核同步机制解析 2026/9/6 11:48:01

AI Core数据一致性实战:SetFlag/WaitFlag与多核同步机制解析

AI Core 数据一致性这块,一直是多核异构开发里最容易翻车的环节。很多人写核间通信代码时,逻辑上看着没问题,一上板子就跑飞,或者隔三差五出现偶发性数据错乱,排查起来极其恶心。今天我就把 AI Core 上生产者与消费者模…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞