Python中的鏈表是一種非常常見的數(shù)據(jù)結(jié)構(gòu),是由節(jié)點(diǎn)組成的一種數(shù)據(jù)結(jié)構(gòu)。在這種數(shù)據(jù)結(jié)構(gòu)中,每個(gè)節(jié)點(diǎn)都包含一個(gè)值和指向下一個(gè)節(jié)點(diǎn)的指針。鏈表的合并是指將兩個(gè)鏈表合并成一個(gè)鏈表,其中一個(gè)鏈表的最后一個(gè)節(jié)點(diǎn)指向另一個(gè)鏈表的第一個(gè)節(jié)點(diǎn)。
# Python代碼合并兩個(gè)鏈表 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def mergeTwoLists(l1: ListNode, l2: ListNode) ->ListNode: if not l1: return l2 if not l2: return l1 if l1.val<= l2.val: l1.next = mergeTwoLists(l1.next, l2) return l1 else: l2.next = mergeTwoLists(l1, l2.next) return l2
上述代碼中,我們首先定義了一個(gè)節(jié)點(diǎn)類,同時(shí)定義了一個(gè)函數(shù)來合并兩個(gè)鏈表。在函數(shù)中,我們分別判斷了兩個(gè)鏈表是否為空,如果其中一個(gè)鏈表為空,直接返回另一個(gè)鏈表。然后,我們比較兩個(gè)鏈表的當(dāng)前節(jié)點(diǎn)的值,將其連接起來。最后,返回合并后的鏈表。
在Python中,鏈表合并的時(shí)間復(fù)雜度為O(n),其中n為兩個(gè)鏈表的總長(zhǎng)度。