Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. from random import randint
  2.  
  3. # Definition for singly-linked list.
  4. class ListNode(object):
  5. def __init__(self, x):
  6. self.val = x
  7. self.next = None
  8.  
  9. class Solution(object):
  10. def addTwoNumbers(self, l1, l2):
  11. """
  12. :type l1: ListNode
  13. :type l2: ListNode
  14. :rtype: ListNode
  15. """
  16. carry = 0
  17. result = ListNode(0)
  18. head = result
  19. while l1 != None or l2 != None or carry != 0:
  20. single_digit_sum = 0
  21. if l1:
  22. single_digit_sum += l1.val
  23. l1 = l1.next
  24. if l2:
  25. single_digit_sum += l2.val
  26. l2 = l2.next
  27. single_digit_sum += carry
  28. current_digit_sum = single_digit_sum%10
  29. result.next = ListNode(current_digit_sum)
  30. result = result.next
  31. carry = single_digit_sum//10
  32.  
  33. return head.next
  34. def printListNode(node):
  35. while node != None:
  36. print node.val,
  37. if node.next != None:
  38. print '->',
  39. node = node.next
  40. print ''
  41.  
  42. def generateListNode():
  43. list = ListNode(randint(0,9))
  44. head = list
  45. list_len = randint(1,9)
  46. for i in range(list_len):
  47. if i == list_len-1:
  48. list.next = ListNode(randint(1,9))
  49. else:
  50. list.next = ListNode(randint(0,9))
  51. list = list.next
  52. return head
  53.  
  54. def main():
  55. l1 = generateListNode()
  56. l2 = generateListNode()
  57. print 'l1: ',
  58. printListNode(l1)
  59. print 'l2: ',
  60. printListNode(l2)
  61.  
  62. s = Solution()
  63. ans = s.addTwoNumbers(l1, l2)
  64. print 'ans:',
  65. printListNode(ans)
  66.  
  67. if __name__ == "__main__":
  68. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement