leetcode-02 两数相加

题解代码:

 1 class Solution:
 2     def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
 3         res1 = ''
 4         res2 = ''
 5         while l1:
 6             res1 += str(l1.val)
 7             l1 = l1.next
 8         while l2:
 9             res2 += str(l2.val)
10             l2 = l2.next
11         temp = str(int(res1[::-1]) + int(res2[::-1]))[::-1]
12         res = ListNode(int(temp[0]))
13         t = res
14         for i in range(1, len(temp)):
15             p = ListNode(int(temp[i]))
16             t.next = p
17             t = t.next
18         return res

一、整体分析:

  该题难度为中等,题中给出两个单链表类型的参数(链表中的每个节点都是整形数值),将每个链表中的各个节点的值分别提取出来并以字符串的形式拼接,

然后进行倒置,将获得的两个字符串重新转为整形并相加得到一个新的整形数值。将这个数值再次转为字符串类型化并进行倒置,然后将每一位上的数字作为一

个节点的值连接成一个新的单链表,将其返回

二、具体思路

  1、定义两个变量 res1 res2,初始化为空字符串

  2、分别循环遍历两个单链表,将每次遍历的节点的值转为字符串类型并分别拼接到上面定义的变量

  3、定义一个变量 temp,用来存储结果链表的各个节点的值的字符串拼接(以字符串的方式)

  4、实例化一个新的单链表 res,同时定义一个头指针 t

  5、遍历 temp,将每次遍历的值转为整形并作为结果链表的一个节点的值连接到结果链表

  6、返回结果链表

猜你喜欢

转载自www.cnblogs.com/DreamDoom/p/Answer02.html