LeetCode 21. Merge Two Sorted Lists——python(easy)——使用了鏈表

題目來源:

題目分析:

  題目給出兩個排好序的鏈表,將這兩個鏈表整合成一個新的有序的鏈表。
這裏通過看程序可以發現定義了一個ListNode類來描述鏈表。並且這裏構建的是單鏈表。需要注意的是我們需要定義一個虛表頭,並且注意不要讓它移動,設定一個yau=tou,然後兩個表的指針一步步移動,並通過比較val的大小決定哪個插入yau.next;最後返回tou.next就可以獲得正確的結果

程序代碼:

# Definition for singly-linked list.
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def mergeTwoLists(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        if(not l1 and not l2):
            return
        tou=ListNode(0)
        yau=tou

        while (l1 and l2):
            if(l1.val<=l2.val):
                yau.next=l1
                l1=l1.next
            else:
                yau.next=l2
                l2=l2.next
            yau=yau.next
        yau.next=(l1 or l2)
        return (tou.next)
測試代碼(網上當的):但是運行時什麼都沒有出現,不知道爲什麼!有大神可以解答嗎?

arr1=[1,2,3]
arr2=[4,5,6]
l1=ListNode(arr1[0])
p1=l1
l2=ListNode(arr2[0])
p2=l2
for i in arr1[1:]:
    p1.next=ListNode(i)
    p1=p1.next
for i in arr2[1:]:
    p2.next=ListNode(i)
    p2=p2.next
s=Solution()
q=s.mergeTwoLists(l1,l2)




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章