:type l1: ListNode :type l2: ListNode :rtype: ListNode
(self, l1, l2)
| 38 | |
| 39 | class Solution(object): |
| 40 | def addTwoNumbers(self, l1, l2): |
| 41 | """ |
| 42 | :type l1: ListNode |
| 43 | :type l2: ListNode |
| 44 | :rtype: ListNode |
| 45 | """ |
| 46 | |
| 47 | get_value = self.getRest(l1, l2) |
| 48 | root = ListNode(get_value[0]) |
| 49 | rest_value = get_value[1] |
| 50 | l1 = l1.next |
| 51 | l2 = l2.next |
| 52 | |
| 53 | backup_root = root |
| 54 | |
| 55 | while l1 is not None or l2 is not None: |
| 56 | |
| 57 | get_value = self.getRest(l1, l2, rest_value) |
| 58 | |
| 59 | new_node = ListNode(get_value[0]) |
| 60 | rest_value = get_value[1] |
| 61 | |
| 62 | root.next = new_node |
| 63 | root = new_node |
| 64 | |
| 65 | l1 = l1.next if l1 else None |
| 66 | l2 = l2.next if l2 else None |
| 67 | |
| 68 | if rest_value: |
| 69 | root.next = ListNode(rest_value) |
| 70 | |
| 71 | return backup_root |
| 72 | |
| 73 | def getRest(self, l1, l2, rest=0): |
| 74 | # return (val, rest) |