Leetcode第二十一題:合併兩個有序鏈表

題目:

將兩個升序鏈表合併爲一個新的 升序 鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。 

 

示例:

輸入:1->2->4, 1->3->4
輸出:1->1->2->3->4->4

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/merge-two-sorted-lists
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

個人思路:

王道數據結構做過一遍,劍指Offer看過一遍,這裏又碰上了。。遞歸即可。

官方答案推薦:

用循環效率能更高一點。

python代碼:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
        if(l1 == None):
            return l2
        elif(l2 == None):
            return l1
        mergeResult = ListNode()
        
        if(l1.val > l2.val):
            mergeResult = l2
            mergeResult.next = self.mergeTwoLists(l1,l2.next)
        else:
            mergeResult = l1
            mergeResult.next = self.mergeTwoLists(l1.next,l2)
        
        return mergeResult

反思:

見到幾行代碼搞定的,可以直接在l1,l2上改。

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