当前位置: 首页 > news >正文

力扣刷题-热题100题-第28题(c++、python)

2. 两数相加 - 力扣(LeetCode)https://leetcode.cn/problems/add-two-numbers/description/?envType=study-plan-v2&envId=top-100-liked

常规法

根据加法的规则,设置一个记位数,初始为0,遍历两个链表,相同位数相加并加上记位数得到最终的值,以个位数作为当前位数的和,十位数更新记位数。

//c++
/**
 * 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 *head=nullptr,*tail=nullptr;
        int carry=0;
        while(l1||l2)
        {
            int n1=l1?l1->val:0;
            int n2=l2?l2->val:0;
            carry=n1+n2+carry;
            if(!head)
            {
                head=tail=new ListNode(carry%10);
            }
            else
            {
                tail->next=new ListNode(carry%10);
                tail=tail->next;
            }
            carry=carry/10;
            if(l1) l1=l1->next;
            if(l2) l2=l2->next;
        }
        if(carry>0) tail->next=new ListNode(carry);
        return head;
    }
};

#python
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
        if l1==None or l2==None:
            return None
        ans=ListNode()
        a=ans
        aa=0
        while l1 or l2:
            a1=l1.val if l1 else 0
            a2=l2.val if l2 else 0
            aa=aa+a1+a2
            b=aa%10
            aa=(aa//10)%10
            c=ListNode(b)
            a.next=c
            a=a.next
            if l1:
                l1=l1.next
            if l2:
                l2=l2.next
        if aa:
            c=ListNode(aa)
            a.next=c
        return ans.next

相关文章:

  • RabbitMQ快速上手
  • 22--交换安全与端口隔离完全指南:MAC地址的奇幻漂流
  • 查看pip3 是否安装了Flask
  • MySQL8.0.37组复制MGR配置详解
  • 零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享
  • 深入了解 MySQL 锁机制
  • 饮料购物商城基于Spring Boot SSM
  • java 面试题记录
  • C++ 变量的声明与定义分离式编译与静态类型(十六)
  • 基于 SpringBoot 的火车订票管理系统
  • 万字长文详解Text-to-SQL
  • 从 0 到跑通的 Qt + OpenGL + VS 项目的完整流程
  • 算法刷题记录——LeetCode篇(1.5) [第41~50题](持续更新)
  • Neo4j【环境部署 03】插件APOC和ALGO配置使用实例分享(网盘分享3.5.5兼容版本插件)
  • 【Windows】win10系统安装.NET Framework 3.5(包括.NET 2.0和3.0)失败 错误代码:0×80240438
  • 【最新】探索CFD的未来:从OpenFOAM到深度学习,全面解析计算流体力学的顶级资源与前沿技术
  • c++并发编程阅读笔记
  • Oracle logminer详解
  • 鸿蒙NEXT开发日志工具类(ArkTs)
  • 全新UI好看404页面源码
  • 武功网站开发/优化教程网下载
  • wordpress 4.9.4 汉化/厦门seo结算
  • 行业网站建设费用明细/国内广告投放平台
  • 青岛h5建站模板/网络推广外包流程
  • wordpress企业官网主题/seo查询百科
  • 北京 网站 外包/百度发布信息的免费平台