首页 > 代码库 > [Leetcode] Add Two Numbers @Python
[Leetcode] Add Two Numbers @Python
本题是使得两个链表相加,每个链表中值均为0~9,对于两个链表对应的值相加值sum若大于9,则为sum%10,并在指向的下一对节点的和sum上加1。
做题思路:
- 判断两链表是否有空链表,若有,直接返回另一个链表。
- 若均不为空,则对应相加即可。
语法细节:
- 定义节点。使用:类+构造方法,构造方法的参数要有节点的数值大小、对下一个节点的指针等。
- 若 l1 表示一个链表,则实质上 l1 表示头节点的指针。
- 先实例一个头结点,然后在 while 循环中逐个加入节点
- del ret 删除头结点
代码实现:
class ListNode: def __init__(self, x): self.val = x self.next = Noneclass Solution: # @return a ListNode def addTwoNumbers(self, l1, l2): if l1 is None: return l2 elif l2 is None: return l1 else: carry = 0 ret =ListNode(0) ret_Last = ret while(l1 or l2): sum = 0 if(l1): sum = l1.val l1 = l1.next if(l2): sum += l2.val l2 = l2.next sum += carry ret_Last.next = ListNode(sum%10) ret_Last = ret_Last.next carry = (sum >= 10) if(carry): ret_Last.next =ListNode(1) ret_Last = ret.next del ret return ret_Last
[Leetcode] Add Two Numbers @Python
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。