力扣算法训练--2.两数相加
2.两数相加题目描述给出两个 非空 的链表用来表示两个非负的整数。其中它们各自的位数是按照 逆序 的方式存储的并且它们的每个节点只能存储 一位 数字。如果我们将这两个数相加起来则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外这两个数都不会以 0 开头。示例输入(2 - 4 - 3) (5 - 6 - 4) 输出7 - 0 - 8 原因342 465 807Java题解/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val x; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode p l1; //将运算结果保存在l1中 ListNode q l2; int addNum 0; //表示进位数 while(q!null){ //所以以l2遍历为主按值计算 if(p.nextnull q.next!null) // 用于判定链表的结束标志 p.next new ListNode(0); if(q.nextnull p.next!null)// 用于判定链表的结束标志 q.next new ListNode(0); int sumAll addNum p.val q.val; p.val sumAll % 10; //表示本位数保存 addNum sumAll / 10; //用于表示进位数参与下一位数的本位计算 if(p.next null q.next null addNum!0) p.next new ListNode(addNum); //用于结果链的结尾置零表示尾空 p p.next; q q.next; } return l1; } }Java题解2class ListNode { int val; ListNode next; ListNode(int x) { val x; } } class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyHead new ListNode(0); ListNode p l1, q l2, curr dummyHead; int carry 0; while (p ! null || q ! null) { int x (p ! null) ? p.val : 0; int y (q ! null) ? q.val : 0; int sum carry x y; carry sum / 10; curr.next new ListNode(sum % 10); curr curr.next; if (p ! null) p p.next; if (q ! null) q q.next; } if (carry 0) { curr.next new ListNode(carry); } return dummyHead.next; } }C题解/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ void deeltail(struct ListNode * pre,struct ListNode * r,int carry); struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode * head ,*p,*q,*pre; int carry 0; if(l1 NULL) return l2; if(l2 NULL) return l1; head l1; p head; while(l1 l2){ pre p;//指向p指针的前向指针 p-val l1-val l2-val carry; carry 0; if(p-val 9){ p-val - 10; carry 1; } l1 l1-next; l2 l2-next; p p-next; } if(!l1 !l2){//l1与l2都只有一个数 if(carry){ q (struct ListNode *)malloc(sizeof(struct ListNode)); q-val carry; q-next NULL; pre-next q; } } else if(l2){//l1的长度小于l2,由于head最初是指向l1的特殊处理 deeltail(pre,l2,carry); } else{//l1的长度大于l2 deeltail(pre,l1,carry); } return head; } void deeltail(struct ListNode * pre,struct ListNode * r,int carry){ struct ListNode * q; pre-next r; q pre-next; while(q){ q-val carry; if(q-val9){ q-val - 10; carry 1; }else{ carry 0; } pre q; q q-next; } if(carry){//最后一个节点加上进位大于10需处理多出来的节点val1 q (struct ListNode *)malloc(sizeof(struct ListNode)); q-val carry; q-next NULL; pre-next q; } }C语言题解2/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode *new1,*p3; static struct ListNode *result; result(struct ListNode *)malloc(sizeof(struct ListNode)); result-nextNULL;//这里很重要定义了指针以后要把它的next赋成NULL否则会编译出错 int sum0; p3result; while(1) { if(l1) { suml1-val; l1l1-next; } if(l2) { suml2-val; l2l2-next; } p3-valsum%10; sumsum/10; if(l1 || l2 || sum!0)//当l1不为空或l2不为空或sum不为0时循环继续 { new1(struct ListNode *)malloc(sizeof(struct ListNode)); new1-nextNULL;//这里很重要定义了指针以后要把它的next赋成NULL否则会编译出错 p3-nextnew1; p3p3-next; } else break;//否则跳出循环得到结果 } return result; }C题解3/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) { struct ListNode *p1 l1; struct ListNode *p2 l2; struct ListNode *l3 (struct ListNode*)malloc(sizeof(struct ListNode)); struct ListNode *p3 l3; int carry 0; int sum 0; while( p1 ! NULL p2 ! NULL) { sum p1-val p2-val carry; if(sum9) { sum%10; carry 1; } else { carry 0; } struct ListNode *p4 (struct ListNode*)malloc(sizeof(struct ListNode)); p4-val sum; p4-next NULL; p3-next p4; p3 p4; p1 p1-next; p2 p2-next; } while(p1!NULL)//p1较长 { sum p1-val carry; if(sum9) { sum%10; carry 1; } else { carry 0; } struct ListNode *p5 (struct ListNode*)malloc(sizeof(struct ListNode)); p5-val sum; p5-next NULL; p3-next p5; p3 p5; p1 p1-next; } while(p2!NULL)//p2较长 { sum p2-val carry; if(sum9) { sum%10; carry 1; } else { carry 0; } struct ListNode *p6 (struct ListNode*)malloc(sizeof(struct ListNode)); p6-val sum; p6-next NULL; p3-next p6; p3 p6; p2 p2-next; } if(carry 1)//完成两条链表的值合并但是最大值位发生进位的处理 { sum carry; struct ListNode *p7 (struct ListNode*)malloc(sizeof(struct ListNode)); p7-val sum; p7-next NULL; p3-next p7; } return l3-next; }

相关新闻

ncmdumpGUI:三分钟快速解锁网易云NCM加密音乐的终极指南

ncmdumpGUI:三分钟快速解锁网易云NCM加密音乐的终极指南

ncmdumpGUI:三分钟快速解锁网易云NCM加密音乐的终极指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 还在为网易云音乐下载的NCM格式文件无法在…

2026/7/28 15:54:44 阅读更多 →
如何高效获取官方电子教材:tchMaterial-parser 终极使用指南

如何高效获取官方电子教材:tchMaterial-parser 终极使用指南

如何高效获取官方电子教材:tchMaterial-parser 终极使用指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内容。 项…

2026/7/28 15:54:44 阅读更多 →
(超级全)Linux常用命令 ,看这一篇就够了,30分钟马上学会

(超级全)Linux常用命令 ,看这一篇就够了,30分钟马上学会

欢迎交流 QQ 2431173627 微信 ccc17862701790 本文将介绍工作学习面试中常用到的LInux基本命令 基本都会涵盖到本人将linux命令总结为一下几大块(如有错误,恳请指正)话不多说 下面将逐一介绍主要参考鸟哥的linux私房菜 同时结合其他地方的学习材料 以及个人平常的使用总结故在以…

2026/7/28 15:54:44 阅读更多 →

最新新闻

如何快速掌握Unlock Music音频解密工具:5步轻松解锁加密音乐文件

如何快速掌握Unlock Music音频解密工具:5步轻松解锁加密音乐文件

如何快速掌握Unlock Music音频解密工具:5步轻松解锁加密音乐文件 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地…

2026/7/28 16:00:46 阅读更多 →
西安射频产业链布局与核心技术企业盘点

西安射频产业链布局与核心技术企业盘点

1. 西安射频产业概况西安作为西北地区重要的科技与工业中心,在射频技术领域形成了完整的产业链布局。这里聚集了从基础元器件研发到系统集成的各类企业,覆盖军工、通信、物联网等多个应用场景。得益于本地高校资源(如西安电子科技大学、西北工…

2026/7/28 16:00:46 阅读更多 →
电容补偿技术解析:原理、应用与优化方案

电容补偿技术解析:原理、应用与优化方案

1. 电容补偿的基本概念与必要性在工业用电和电力系统中,电容补偿是一个经常被提及但容易被误解的技术。我第一次接触这个概念是在某工厂的配电室改造项目中,当时产线设备频繁出现电压波动导致的生产异常,而解决问题的关键正是电容补偿装置的正…

2026/7/28 16:00:46 阅读更多 →
抖音无水印下载神器:3分钟搞定批量下载的终极指南

抖音无水印下载神器:3分钟搞定批量下载的终极指南

抖音无水印下载神器:3分钟搞定批量下载的终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. …

2026/7/28 16:00:46 阅读更多 →
TestDisk数据恢复终极指南:免费开源工具拯救丢失分区和文件的完整方法

TestDisk数据恢复终极指南:免费开源工具拯救丢失分区和文件的完整方法

TestDisk数据恢复终极指南:免费开源工具拯救丢失分区和文件的完整方法 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk TestDisk数据恢复是每个电脑用户都应该掌握的救命技能。当硬盘分区神秘消失…

2026/7/28 16:00:46 阅读更多 →
MatAnyone:无需绿幕的AI视频抠像革命,3分钟实现电影级效果

MatAnyone:无需绿幕的AI视频抠像革命,3分钟实现电影级效果

MatAnyone:无需绿幕的AI视频抠像革命,3分钟实现电影级效果 【免费下载链接】MatAnyone [CVPR 2025] MatAnyone: Stable Video Matting with Consistent Memory Propagation 项目地址: https://gitcode.com/gh_mirrors/ma/MatAnyone 还在为复杂的视…

2026/7/28 15:59:46 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻