leetcode
两数之和
涉及了链表的操作,其中链表有两个关键参数, self.val self,next 一个表示当前位置的所对应值, 一个表示把指针切换到链表的下一个节点。
题目
以下是代码实现
class Solution: def addTwoNumbers(self, l1, l2): n1 = [] n2 = [] nl = [] while l1.next and l2.next: n1.append(l1.val) n2.append(l2.val) l1 = l1.next l2 = l2.next while l1.next != None: n1.append(l1.val) l1 = l1.next while l2.next != None: n2.append(l2.val) l2 = l2.next else: n1.append(l1.val) n2.append(l2.val) res1 = 0 res2 = 0 number1 = len(n1) number2 = len(n2) for i in n1: if number1 >= 0: res1 += i * 10 ** (len(n1) - number1) number1 += -1 for i in n2: if number2 >= 0: res2 += i * 10 ** (len(n2) - number2) number2 += -1 res3 = list(str(res1 + res2)) res3 = res3[::-1] for i in res3: nl.append(int(i)) return nl
可优化部分 是对链表取值后 ,可以不通过列表遍历,方法还有待后续改进