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.
这题与Add Two Numbers相似,注意的是存在长度不等,以及考虑使用dummy node作为结果的头元素,时间复杂度O(n+m),n为两条链表分别的长度。空间复杂度O(1).代码如下:
class Solution(object): def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ if not l1 and not l2: return None dummy = ListNode(-1) cur = dummy while l1 and l2: if l1.val < l2.val: cur.next = l1 l1 = l1.next else: cur.next = l2 l2 = l2.next cur = cur.next cur.next = l1 if l1 else l2 return dummy.next