題目:
將兩個升序鏈表合併爲一個新的 升序 鏈表並返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。
示例:
輸入: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上改。