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
1. Code:
- # 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
- """
- rtype = None
- prev = None
- plugs = 0
- while (l1 is not None) or (l2 is not None) or plugs != 0:
- v1 = self._getListNodeValue(l1)
- v2 = self._getListNodeValue(l2)
- l1 = self._getNextListNode(l1)
- l2 = self._getNextListNode(l2)
- count = v1 + v2 + plugs
- plugs = count / 10
- ln = ListNode(count % 10)
- if rtype is None:
- rtype = ln
- prev = rtype
- else:
- prev.next = ln
- prev = prev.next
- return rtype
- def _getListNodeValue(self, ln):
- """
- :type l1: ListNode
- :rtype: number
- """
- if not isinstance(ln, ListNode):
- return 0
- return ln.val
- def _getNextListNode(self, ln):
- """
- :type l1: ListNode
- :rtype: ListNode
- """
- if not isinstance(ln, ListNode):
- return None
- return ln.next
心得:
一看見題目就覺得簡單啊,刷刷地就寫完了
點Run Code按鈕,嗯?怎麼會出現這種錯誤訊息
重新看一次題目,原來有定義一個class ListNode
我還以為會傳進來的是List…
用Python寫Link-list,雖然不是不行拉
應該是防呆機制的關係,拿掉再試乙次
2. Code:
- # 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
- """
- rtype = None
- prev = None
- plugs = 0
- while (l1 is not None) or (l2 is not None) or plugs != 0:
- v1 = v2 = 0
- if l1 is not None:
- v1 = l1.val
- l1 = l1.next
- if l2 is not None:
- v2 = l2.val
- l2 = l2.next
- count = v1 + v2 + plugs
- plugs = count / 10
- ln = ListNode(count % 10)
- if rtype is None:
- rtype = ln
- prev = rtype
- else:
- prev.next = ln
- prev = prev.next
- return rtype
心得:
速度快了一點吧,微妙
沒有留言:
張貼留言