1. 程式人生 > 實用技巧 >LeetCode 21 _ 合併兩個有序連結串列

LeetCode 21 _ 合併兩個有序連結串列

1. 題目描述

2. 程式碼

 1 # Definition for singly-linked list.
 2 # class ListNode:
 3 #     def __init__(self, val=0, next=None):
 4 #         self.val = val
 5 #         self.next = next
 6 class Solution:
 7     def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
 8         prehead = ListNode(-1)
9 prev = prehead 10 while l1 != None and l2 != None: 11 if l1.val <= l2.val: 12 prev.next = l1 13 l1 = l1.next 14 else: 15 prev.next =l2 16 l2 = l2.next 17 prev = prev.next 18 if
l1 is not None: 19 prev.next = l1 20 else: 21 prev.next = l2 22 return prehead.next

思路: 如下圖

3. 語法整理:資料結構中的連結串列

3.1 建立連結串列及單鏈表遍歷

 1 class ListNode:
 2     def __init__(self, val=0, next=None):
 3         self.val = val
 4         self.next = next
 5 if __name__
== '__main__': 6 l1 = ListNode(1) 7 l2 = ListNode(2) 8 l3 = ListNode(3) 9 10 l1.next = l2 11 l2.next = l3 12 13 #單鏈表遍歷 14 while l1 != None: 15 print(l1.val) 16 l1 = l1.next
1
2
3

3.2 頭插法