力扣-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;
    }
};

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

相关推荐
千寻girling13 小时前
Python 是用来做 AI 人工智能 的 , 不适合开发 Web 网站 | 《Web框架》
人工智能·后端·算法
颜酱17 小时前
一步步实现字符串计算器:从「转整数」到「带括号与优化」
javascript·后端·算法
CoovallyAIHub1 天前
语音AI Agent编排框架!Pipecat斩获10K+ Star,60+集成开箱即用,亚秒级对话延迟接近真人反应速度!
深度学习·算法·计算机视觉
木心月转码ing2 天前
Hot100-Day14-T33搜索旋转排序数组
算法
会员源码网2 天前
内存泄漏(如未关闭流、缓存无限增长)
算法
颜酱2 天前
从0到1实现LFU缓存:思路拆解+代码落地
javascript·后端·算法
颜酱2 天前
从0到1实现LRU缓存:思路拆解+代码落地
javascript·后端·算法
CoovallyAIHub2 天前
Moonshine:比 Whisper 快 100 倍的端侧语音识别神器,Star 6.6K!
深度学习·算法·计算机视觉
CoovallyAIHub3 天前
速度暴涨10倍、成本暴降6倍!Mercury 2用扩散取代自回归,重新定义LLM推理速度
深度学习·算法·计算机视觉