Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
-
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
"""
第一次:使用第三个链表l12辅助,依次比较l1和l2的大小,并将小的添加到l12中
"""
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ head = ListNode(0) l12 = head while l1 and l2: if l1.val >= l2.val: l12.next = ListNode(l2.val) l12 = l12.next l2 = l2.next continue if l1.val < l2.val: l12.next = ListNode(l1.val) l12 = l12.next l1 = l1.next continue while l1: l12.next = ListNode(l1.val) l1, l12 = l1.next, l12.next while l2: l12.next = ListNode(l2.val) l2, l12 = l2.next, l12.next return head.next
"""
Runtime: 24 ms, faster than 99.55% of Python online submissions for Merge Two Sorted Lists.
Memory Usage: 11.9 MB, less than 5.04% of Python online submissions for Merge Two Sorted Lists.
"""