Posted on 2022-11-03 00:49
Uriel 閱讀(52)
評論(0) 編輯 收藏 引用 所屬分類:
數據結構 、
閑來無事重切Leet Code
大數加法,鏈表結構實現,第一個是自己的寫法,多開個變量ini標記是不是第一位(要保留第一位的節點root),后一種是看到Discussion中的寫法,直接多搞一個值為0的頭結點,最后return頭結點的next,更簡潔一點點?但耗時長一點點
1 #2
2 #Runtime: 51 ms
3 #Memory Usage: 13.6 MB
4
5 # Definition for singly-linked list.
6 # class ListNode(object):
7 # def __init__(self, val=0, next=None):
8 # self.val = val
9 # self.next = next
10 class Solution(object):
11 def addTwoNumbers(self, l1, l2):
12 """
13 :type l1: ListNode
14 :type l2: ListNode
15 :rtype: ListNode
16 """
17 ini = 0
18 t = 0
19 while l1 or l2 or t:
20 if l1:
21 t += l1.val
22 l1 = l1.next
23 if l2:
24 t += l2.val
25 l2 = l2.next
26 if ini == 0:
27 root = ListNode(t % 10)
28 ans = root
29 ini = 1
30 else:
31 ans.next = ListNode(t % 10)
32 ans = ans.next
33 t = t // 10
34 return root
1 #2
2 #Runtime: 80 ms
3 #Memory Usage: 13.3 MB
4
5 # Definition for singly-linked list.
6 # class ListNode(object):
7 # def __init__(self, val=0, next=None):
8 # self.val = val
9 # self.next = next
10 class Solution(object):
11 def addTwoNumbers(self, l1, l2):
12 """
13 :type l1: ListNode
14 :type l2: ListNode
15 :rtype: ListNode
16 """
17 p = ListNode(0)
18 ans = p
19 t = 0
20 while l1 or l2 or t:
21 if l1:
22 t += l1.val
23 l1 = l1.next
24 if l2:
25 t += l2.val
26 l2 = l2.next
27 ans.next = ListNode(t % 10)
28 ans = ans.next
29 t = t // 10
30 return p.next