LeetCode算法题:2. 两数相加

文章目录


题目描述:

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

题目链接:2. 两数相加


通过代码

创建新一串新链表:

优点是便于思考操作,但是会增加存储空间的占用,如果链表内的数据本身就很大,就会加剧内存的消耗

cpp 复制代码
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode *first=new ListNode();
        ListNode* p=first,*p1=l1,*p2=l2;
        while(p1||p2){
            if(p1){p->val+=p1->val;p1=p1->next;}
            if(p2){p->val+=p2->val;p2=p2->next;}
            if(p1||p2||p->val>9){
                p->next=new ListNode();
                if(p->val>9){
                    p->val-=10; 
                    p->next->val=1;
                }
                p=p->next;
            }
        }
        return first;
    }
};

至此,结束

相关推荐
xxwl5856 分钟前
区域赛算法模版第八章---贪心(Greedy)
c++·笔记·学习·算法
雾沉川8 分钟前
Visual C++运行库合集 v105.0 安装教程
开发语言·c++·dll
_wyt00118 分钟前
洛谷P17461 [GESP202609 八级] 生成树计数 题解
c++·数学·树·gesp·八级·仙人掌
CCblandy1 小时前
向量检索 ANN 参数实测:换一种数据分布,recall 掉了 51 个百分点
人工智能·python·算法·自然语言处理·性能优化
CS创新实验室1 小时前
一棵树怎么做到“自平衡还不太费力“?——红黑树的旋转与染色
数据结构·算法·红黑树·408·计算机考研
Logic1011 小时前
C语言/数据结构位运算题解:异或XOR找出被挑选一次的果子编号——只出现一次的数字
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度
深圳市快瞳科技有限公司1 小时前
面向端侧部署的多帧宠物身份识别:完整性评分机制与工程约束
人工智能·算法·计算机视觉·端侧ai·宠物识别·宠物ai·宠物身份识别
知产xiao_xin1 小时前
专利立法及修改
经验分享·笔记·知识产权
qq_284274051 小时前
S7-1200 PLC硬件与启保停实训:CPU选型与DC/DC/DC、循环扫描五阶段、博途组态及电动机启停自锁梯形图(含考点)
笔记·学习·自动化·制造