leetcode-02 两数相加
Posted dreamdoom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、返回结果链表
以上是关于leetcode-02 两数相加的主要内容,如果未能解决你的问题,请参考以下文章