博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣刷题 两数相加
阅读量:30389 次
发布时间:2020-01-04

本文共 1422 字,大约阅读时间需要 4 分钟。

力扣刷题 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

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

示例:

在这里插入图片描述

class Solution:    def addTwoNumbers(self, l1, l2):        """        :type l1: ListNode        :type l2: ListNode        :rtype: ListNode        """        cur = ret = ListNode(0)        add = 0                while l1 or l2 or add:            val = (l1.val if l1 else 0) + (l2.val if l2 else 0) + add            add = val // 10            cur.next = ListNode(val % 10)            cur = cur.next            l1 = l1.next if l1 else None            l2 = l2.next if l2 else None                return ret.next

对应的C++版本:

class Solution {
public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* dumHead = new ListNode(0); ListNode* p = dumHead; int add = 0; while (l1 || l2 || add) {
int val = get_value(l1) + get_value(l2) + add; add = val / 10; p->next = new ListNode(val % 10); p = p->next; l1 = get_p(l1); l2 = get_p(l2); } ListNode* ret = dumHead->next; delete dumHead; return ret; }private: int get_value(ListNode* l) {
if (l != nullptr) return l->val; else return 0; } ListNode* get_p(ListNode* l) {
if (l != nullptr) return l->next; return nullptr; }};

转载地址:http://hvbhbu.baihongyu.com/

你可能感兴趣的文章
AttributeError: module ‘urllib‘ has no attribute ‘quote‘的解决办法
查看>>
linux shell — 6.初识 EXT2 文件系统
查看>>
Java — String(字符串)
查看>>
linux shell — 7.linux 磁盘与文件系统管理
查看>>
linux shell — 8.linux 磁盘与文件系统管理(2)
查看>>
Java — 事件监听、事件处理 初体验
查看>>
linux — Centos 7(第一天) 使用时出现的问题及解决方法
查看>>
数据结构 — 图的概述
查看>>
Centos 7 上 Eclipse 无法输入中文解决方法
查看>>
数据结构 — 图之邻接表存储创建和深度优先遍历
查看>>
Centos 7 — Gedit 配色方案
查看>>
数据结构 — 图 之 广度优先遍历
查看>>
数据结构 — 图 之 MST(最小生成树 — prim算法 )
查看>>
数据结构 — 图 之 MPT(最短路径 — dijkstra算法 )
查看>>
数据结构 — 7.有向图的创建及出入度的计算
查看>>
数据结构 — 图 之 拓扑排序 (AOV网)
查看>>
数据结构 — 图 之 关键路径、关键活动 (文字表述)
查看>>
数据结构 — 树 与 二叉树、森林
查看>>
数据结构 — 二叉树(创建、遍历)java实现
查看>>
数据结构 — 查找(最基础)
查看>>