Leetcode-Algorithms Add Two Numbers
2017-02-27 07:33
309 查看
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
给出两个非空的linked list代表两个非负的integer,digits 是反向排序,每个node包含一个digit。把两个linked list加在一起return 一个新的linked list。
重点是用divmod来处理之和大于10,next增加的情况。divmod(a,b) = (a//b, a%b)。 结果type是tuple。注意引入一个temp来进行next之间的计算和传递,最后return是root.next而非root,不然linked list第一位是0(因为root = ListNode(0) )。
ps:由于不知道divmod,折腾了不少方法最后还是看了答案。
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
给出两个非空的linked list代表两个非负的integer,digits 是反向排序,每个node包含一个digit。把两个linked list加在一起return 一个新的linked list。
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def addTwoNumbers(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ root = n = ListNode(0) carry = 0 while l1 or l2 or carry: if l1: val1 = l1.val l1 = l1.next else: val1 = 0 if l2: val2 = l2.val l2 = l2.next else: val2 = 0 carry, val = divmod(val1+val2+carry, 10) n.next = ListNode(val) n = n.next return root.next
重点是用divmod来处理之和大于10,next增加的情况。divmod(a,b) = (a//b, a%b)。 结果type是tuple。注意引入一个temp来进行next之间的计算和传递,最后return是root.next而非root,不然linked list第一位是0(因为root = ListNode(0) )。
ps:由于不知道divmod,折腾了不少方法最后还是看了答案。
相关文章推荐
- [LeetCode]-algorithms-Add Two Numbers
- [LeetCode] Algorithms-2. Add Two Numbers
- Add Two Numbers--LeetCode
- LeetCode Add Two Numbers 空头节点
- LeetCode - 2. Add Two Numbers
- leetcode-2 Add Two Numbers
- LeetCode 2. Add Two Numbers 解题报告
- Leetcode : Add Two Numbers
- leetcode 002 —— add two numbers
- [leetcode] 2. Add Two Numbers
- leetcode:Add Two Numbers
- LeetCode 开刷2 ADD Two Numbers
- Leetcode c语言-Add Two Numbers
- [LeetCode] Add Two Numbers
- [LeetCode] [Add Two Numbers 2011-11-01 ]
- [leetcode] 【链表】2. Add Two Numbers
- LeetCode 2. Add Two Numbers
- Linked List -- Leetcode problem 2. Add Two Numbers
- leetcode 练习——add two numbers (Java)
- leetcode-2.Add Two Numbers