例1
輸入:l1 =[2
,4,3
], l2 =[5
,6,4
]輸出:[7,
0,8]
解釋:342
+465
=807
.
例2
輸入:l1 =[0
], l2 =[0
]輸出:[
0]
學習鍊錶結構:
鍊錶是一種遞迴的資料結構,由乙個個結點(node)組成,且每個節點都有資料域(value)和指標域(next)。
head—為單鏈表的頭指標,永遠指向第乙個節點
tail—永遠指向最後乙個節點
none—表示最後乙個節點的指標域為none值
思路:1.同時遍歷兩個鍊錶;
2.遍歷的同時也將每個節點的和建立到新的鍊錶中
# definition for singly-linked list.
# class listnode(object):
# def __init__(self, val=0, next=none):
# self.val = val
# self.next = next
class
solution
(object):
defaddtwonumbers
(self, l1, l2)
: head = listnode(
)# 頭指標
cur = head
carry =
0while l1 or l2:
value_l1 = l1.val if l1 else
0 value_l2 = l2.val if l2 else
0 total = value_l1 + value_l2 + carry # 求和
carry = total //
10# 判斷是否有進製
cur.
next
= listnode(total %
10)
cur = cur.
next
# 建立節點
if l1 :
l1 = l1.
next
if l2 :
l2 = l2.
next
if carry >0:
cur.
next
= listnode(carry)
# 判斷最後一位是否有進製
return head.
next
例
輸入:1-
>2-
>3-
>4-
>5-
>null
輸出:5
->4-
>3-
>2-
>1-
>null
思路:
1.先建立兩個指標pre(指向前節點),cur(指向當前節點),初始值為pre = none,cur = head;
2.將當前節點 cur 的後一節點 next 儲存在tra;
3.然後將當前節點指向前節點pre;
4.接著把指標pre向後挪一位,即當前節點cur;
5.最後也將指標cur向後挪一位,即 cur = tra;
6.直到 cur 指向了none結束迴圈。
# definition for singly-linked list.
# class listnode(object):
# def __init__(self, val=0, next=none):
# self.val = val
# self.next = next
class
solution
(object):
defreverselist
(self, head)
:"""
:type head: listnode
:rtype: listnode
"""pre =
none
# 前節點
cur = head # 現節點
while cur:
tra = cur.
next
# 保留後節點
cur.
next
= pre # 當前節點指向前一節點
pre = cur # 前節點往後挪一位
cur = tra # 當前節點往後挪一位
return pre
暑期LeetCode打卡 Week2,遞迴
題號 題目鏈結 set資料結構 特點 所有元素都會根據元素的鍵值自動排序,不允許兩個元素有相同的鍵值,可用於去重。begin 返回指向第乙個元素的迭代器 end 返回指向最後乙個元素的迭代器 empty 判空 clear 清空 size 集合中元素數目 insert 插入元素 erase 刪除元素 ...
A 化學(Week2 模擬)
題目敘述 化學很神奇,以下是烷烴基。假設如上圖,這個烷烴基有6個原子和5個化學鍵,6個原子分別標號1 6,然後用一對數字 a,b 表示原子a和原子b間有乙個化學鍵。這樣通過5行a,b可以描述乙個烷烴基 你的任務是甄別烷烴基的類別。原子沒有編號方法,比如 1 22 3 3 44 5 5 6和 1 32...
程式設計 Week2 作業
題意 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。input 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示法陣地圖。ou...