題目來源:https://leetcode-cn.com/problems/merge-two-sorted-lists/python
將兩個有序鏈表合併爲一個新的有序鏈表並返回。新鏈表是經過拼接給定的兩個鏈表的全部節點組成的。 segmentfault
示例:微信
輸入:1->2->4, 1->3->4 輸出:1->1->2->3->4->4
cur
指針,調整它的 next
指針;cur
節點後面;# # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: '''將兩個有序鏈表合併成一個鏈表而後返回 Args: l1: 有序鏈表 1 l2: 有序鏈表 2 Returns: 返回合併後的有序鏈表 ''' # 定義一個哨兵節點,用以正確返回合併後的鏈表 pre_head = ListNode(None) # 控制 cur 指針,比較節點大小 cur = pre_head # 比較兩個鏈表的節點大小,當兩個鏈表任意一個爲空,則終止 while l1 and l2: # 當 l1 的節點較小,則指針指向 l1,同時向後移 if l1.val < l2.val: cur.next, l1 = l1, l1.next else: # 不然,指針指向 l2,同時向後移 cur.next, l2 = l2, l2.next # 維護 cur 指針 cur = cur.next # 考慮其中任意一個鏈表爲空,將非空的鏈表拼接在合併鏈表後面 cur.next = l1 if l1 else l2 return pre_head.next
以上爲本篇的主要內容。
結語:祝你們新春大吉,平安喜樂spa
題外話:但願你們作好我的防禦,如非必要,儘可能不出門。指針
歡迎關注微信公衆號《書所集錄》