资讯专栏INFORMATION COLUMN

两个用链表表示的数字相加

helloworldcoding / 1174人阅读

摘要:两个用链表表示的数字相加思路将链表整体转成,再之后转成相加,得到再次之后,循环转成链表代码本题以及其它题目代码地址地址

两个用链表表示的数字相加 Add Two Numbers

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself.

example

Input: (2 -> 6) + (3 -> 7)
Output: 1 -> 3 -> 5
思路

将链表整体转成str,再reverse

reverse之后转成int相加,得到re

re再次reverse之后,循环转成链表

代码
# Definition for singly-linked list.
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        s1 = self.genS(l1)
        s2 = self.genS(l2)
        re = str(int(s1) + int(s2))[::-1]
        tmp = result = ListNode(int(re[0]))
        for i in range(1, len(re)):
            tmp.next = ListNode(int(re[i]))
            tmp = tmp.next
        return result

    def genS(self, li):
        s = ""
        while li:
            s += str(li.val)
            li = li.next
        return s[::-1]




a = ListNode(2)
a.next = ListNode(6)
b = ListNode(3)
b.next = ListNode(7)
re =  Solution().addTwoNumbers(a, b)
print(re.next.val)

本题以及其它leetcode题目代码github地址: github地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/38675.html

相关文章

  • 【leetcode】2. 两数相加

    摘要:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字之外,这两个数都不会以开头。 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两...

    dack 评论0 收藏0
  • [Leetcode] Add Two Numbers 链表相加

    摘要:过程同样是对齐相加,不足位补。迭代终止条件是两个都为。如果这是一个类的话该如何实现将链表或者数组作为成员变量,提供对其操作的各种方法。 Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order a...

    Fourierr 评论0 收藏0
  • LeetCode 2:两数相加 Add Two Numbers

    摘要:给出两个非空的链表用来表示两个非负的整数。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。需要考虑到两个链表长度不同时遍历方式链表遍历完成时最后一位是否需要进一位。 ​给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 ...

    diabloneo 评论0 收藏0
  • LeetCode 2:两数相加 Add Two Numbers

    摘要:给出两个非空的链表用来表示两个非负的整数。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。需要考虑到两个链表长度不同时遍历方式链表遍历完成时最后一位是否需要进一位。 ​给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 ...

    Towers 评论0 收藏0
  • LeetCode.2 两数相加(Add Two Numbers)(JS)

    摘要:更新之前说感觉优秀答案的最后三行可以用尾递归优化不知道尾递归的小伙伴可以点这里,仔细想了一下,并不能。尾递归的实现,往往需要改写递归函数,确保最后一步只调用自身。 上周日就想写vue.nextTick的源码分析,可是总是不知道从哪儿下手,今天有时间,先把leetcode第二题补了,感觉这道题还挺简单的 一、题目 两数相加: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自...

    Binguner 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<