Python 中兩個連結串列元素交錯的程式
假設我們有兩個連結串列 l1 和 l2,我們需要返回一個連結串列,該連結串列透過交錯這兩個連結串列的元素來構建,並以 l1 開頭。如果任何一個連結串列還有剩餘節點,則應將其追加到列表中。
因此,如果輸入類似於 l1 = [5,4,6,3,4,7] l2 = [8,6,9],則輸出將為 [5,8,4,6,6,9,3,4,7]
為了解決這個問題,我們將遵循以下步驟 -
ans := l1
當 l2 不為空時,執行以下操作
如果 ans 不為空,則
如果 ans 的下一個節點不為空,則
newnode := 一個具有與 l2 相同值的新連結串列節點
newnode 的下一個節點 := ans 的下一個節點
ans 的下一個節點 := newnode
ans := newnode 的下一個節點
l2 := l2 的下一個節點
否則,
ans 的下一個節點 := l2
退出迴圈
否則,
返回 l2
返回 l1
讓我們看看下面的實現來更好地理解 -
示例
Source Code (Python):
class ListNode:
def __init__(self, data, next = None):
self.val = data
self.next = next
def make_list(elements):
head = ListNode(elements[0])
for element in elements[1:]:
ptr = head
while ptr.next:
ptr = ptr.next
ptr.next = ListNode(element)
return head
def print_list(head):
ptr = head
print('[', end = "")
while ptr:
print(ptr.val, end = ", ")
ptr = ptr.next
print(']')
class Solution:
def solve(self, l1, l2):
ans = l1
while l2:
if ans:
if ans.next != None:
newnode = ListNode(l2.val, None)
newnode.next = ans.next
ans.next = newnode
ans = newnode.next
l2 = l2.next
else:
ans.next = l2
break
else:
return l2
return l1
ob = Solution()
l1 = make_list([5,4,6,3,4,7])
l2 = make_list([8,6,9])
res = ob.solve(l1,l2)
print_list(res)輸入
[5,4,6,3,4,7],[8,6,9]
輸出
[5, 8, 4, 6, 6, 9, 3, 4, 7, ]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP