21. Merge Two Sorted Lists
这道题类似于中等难度的第一道题,所以写起来就比较容易。先生成一个头结点,初始化一下。因为这两个List已经排好序了,所以先当两个List都不空时,逐个判断,添加到新List即可,记得维护指针,往后顺延。跳出循环肯定是有一个List到头了,所以在之后再判断一下就行了。
# Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def mergeTwoLists(self, l1, l2): """ :type l1: ListNode :type l2: ListNode :rtype: ListNode """ res = ListNode(0) result = res while l1 and l2: if l1.val < l2.val: res.next = ListNode(l1.val) l1 = l1.next res = res.next elif l1.val == l2.val: res.next = ListNode(l1.val) res = res.next res.next = ListNode(l2.val) res = res.next l1 = l1.next l2 = l2.next else: res.next = ListNode(l2.val) l2 = l2.next res = res.next while l1: res.next = ListNode(l1.val) res = res.next l1 = l1.next while l2: res.next = ListNode(l2.val) res = res.next l2 = l2.next return result.next