leetcode : Add Two Sum

题目:

You are given two linked lists representing two non-negative numbers. 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.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

思路:要考虑到进位,考虑到产生新的节点还有就是不同链的长短,都考虑进去就很好解决了。

 1 class Solution(object):
 2     def addTwoNumbers(self, l1, l2):
 3         """
 4         :type l1: ListNode
 5         :type l2: ListNode
 6         :rtype: ListNode
 7         """
 8         a = 0
 9         head = ListNode(a)
10         q = head
11         flag = 0
12         
13         while l1 and l2:
14             p = ListNode(a)
15             q.next = p
16             q = p
17             if l1.val + l2.val + flag > 10:
18                 q.val = l1.val + l2.val - 10 + flag
19                 flag = 1
20             elif l1.val + l2.val + flag == 10:
21                 q.val = 0 
22                 flag = 1
23             else:
24                 q.val = l1.val + l2.val + flag
25                 flag = 0
26             l1 = l1.next
27             l2 = l2.next
28                 
29         while l1:
30             p = ListNode(a)
31             q.next = p
32             q = p
33             if l1.val + flag == 10:
34                 q.val = 0
35                 flag = 1
36             else:
37                 q.val = l1.val + flag
38                 flag = 0
39             l1 = l1.next
40         
41                 
42         while l2:
43             p = ListNode(a)
44             q.next = p
45             q = p
46             if l2.val + flag == 10:
47                 q.val = 0
48                 flag = 1
49             else:
50                 q.val = l2.val + flag
51                 flag = 0
52             l2 = l2.next
53                 
54         if flag == 1:
55             p = ListNode(a)
56             q.next = p
57             q = p
58             q.val = 1
59             
60         return head.next

 

posted @ 2015-09-02 16:02  双音节的秋  阅读(224)  评论(0编辑  收藏  举报