[leetcode] 21.合并两个有序链表
生活随笔
收集整理的這篇文章主要介紹了
[leetcode] 21.合并两个有序链表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
將兩個升序鏈表合并為一個新的?升序?鏈表并返回。新鏈表是通過拼接給定的兩個鏈表的所有節點組成的。
示例 1:
輸入:l1 = [1,2,4], l2 = [1,3,4] 輸出:[1,1,2,3,4,4]示例 2:
輸入:l1 = [], l2 = [] 輸出:[]示例 3:
輸入:l1 = [], l2 = [0] 輸出:[0]解法1:
思路:建立一個空的鏈表,通過傳值的形式,把小的值傳入到新鏈表里。
class Solution(object):def mergeTwoLists(self,l1,l2):merge = ListNode()merge1 = mergecurr1 = l1curr2 = l2while curr1 != None and curr2 != None:if curr1.val <= curr2.val:merge1.next = curr1curr1 = curr1.nextelse:merge1.next = curr2curr2 = curr2.nextmerge1 = merge1.nextif curr1 != None:merge1.next = curr1else:merge1.next = curr2return merge.next解法2:遞歸
class Solution:def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:if l1== None:return l2if l2 == None:return l1if l1.val < l2.val:l1.next = self.mergeTwoLists(l1.next,l2)return l1else:l2.next = self.mergeTwoLists(l1,l2.next)return l2總結
以上是生活随笔為你收集整理的[leetcode] 21.合并两个有序链表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [leetcode] 3.无重复字符的最
- 下一篇: 剑指0ffer04.二维数组中的查找