力扣-2.两数相加

题目描述

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

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

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

cpp 复制代码
class Solution {
public:
    ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) {
        ListNode *l = new ListNode(-1);
        ListNode *p = l;
        int flag = 0;
        while (l1 && l2) {
            if (l1->val + l2->val + flag < 10) {
                p->next = new ListNode(l1->val + l2->val + flag);
                flag = 0;
            } else {
                p->next = new ListNode(l1->val + l2->val + flag - 10);
                flag = 1;
            }
            l1 = l1->next;
            l2 = l2->next;
            p = p->next;
        }
        while (l1) {
            if (l1->val + flag < 10) {
                p->next = new ListNode(l1->val + flag);
                flag = 0;
            } else {
                p->next = new ListNode(l1->val + flag - 10);
                flag = 1;
            }
            l1 = l1->next;
            p = p->next;
        }
        while (l2) {
            if (l2->val + flag < 10) {
                p->next = new ListNode(l2->val + flag);
                flag = 0;
            } else {
                p->next = new ListNode(l2->val + flag - 10);
                flag = 1;
            }
            l2 = l2->next;
            p = p->next;
        }
        if (flag == 1) {
            p->next = new ListNode(1);
        }
        return l->next;
    }
};

小结:上面的写法有一些冗余,但是思路看起来比较清晰,也是一遍过了

相关推荐
胖咕噜的稞达鸭1 小时前
算法入门:专题攻克一---双指针(3)有效三角形的个数 查找总价格为目标值的两个商品(剑指offer题目)
算法
逻辑留白陈6 小时前
Adaboost进阶:与主流集成算法对比+工业级案例+未来方向
算法
Learn Beyond Limits6 小时前
Mean Normalization|均值归一化
人工智能·神经网络·算法·机器学习·均值算法·ai·吴恩达
天选之女wow6 小时前
【代码随想录算法训练营——Day28】贪心算法——134.加油站、135.分发糖果、860.柠檬水找零、406.根据身高重建队列
算法·leetcode·贪心算法
Gohldg6 小时前
C++算法·贪心例题讲解
c++·数学·算法·贪心算法
远远远远子6 小时前
类与对象 --1
开发语言·c++·算法
Aaplloo7 小时前
【无标题】
人工智能·算法·机器学习
西望云天7 小时前
The 2024 ICPC Asia Nanjing Regional Contest(2024南京区域赛EJKBG)
数据结构·算法·icpc
10岁的博客7 小时前
容器化安装新玩法
算法
不会算法的小灰7 小时前
HTML简单入门—— 基础标签与路径解析
前端·算法·html