赞
踩
class ListNode(): def __init__(self, val): if isinstance(val, int): self.val = val self.next = None elif isinstance(val, list): self.val = val[0] self.next = None cur = self for i in val[1:]: cur.next = ListNode(i) cur = cur.next def gatherAttrs(self): return ", ".join("{}: {}".format(k, getattr(self, k)) for k in self.__dict__.keys()) def __str__(self): return self.__class__.__name__ + " {" + "{}".format(self.gatherAttrs()) + "}" def addTwoNumbers(l1, l2): if isinstance(l1, list): l1 = ListNode(l1) l2 = ListNode(l2) re = ListNode(0)#创建一个空链表来保存结果 r = re #r指向首指针 carry = 0#创建一个变量来保存进位的结果 re_next = 0#创建一个value_next 来保存进位的结果 while(l1 or l2): x = l1.val if l1 else 0 y = l2.val if l2 else 0 s = x + y + carry carry = s//10 r.next = ListNode(s%10) #首指针的next值为s%0 r = r.next #r指向第下一个值 if(l1!=None):l1 = l1.next#移向下一个结点取值 if(l2!=None):l2 = l2.next #循环结束之后,注意如果还有进位需要保存 if(carry>0): r.next = ListNode(1) return re.next print(addTwoNumbers([2,4,3],[5,6,4]))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。