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.
很标准的题目,中规中矩。 两个list, 本身排序过了,现在合并成一个新的list,也要排序完毕。 比较两个list的节点的值,哪个小,先把哪个节点放入新的list。 直到只剩一个list,然后link上就好。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# @param two ListNodes
# @return a ListNode
def mergeTwoLists(self, l1, l2):
if l1==None :
return l2
if l2==None:
return l1
dummy = ListNode(0)
tmp = dummy
while l1 and l2:
if l1.val <= l2.val:
tmp.next = l1
l1 = l1.next
tmp = tmp.next
else :
tmp.next = l2
l2 = l2.next
tmp = tmp.next
if l1 == None:
tmp.next = l2
else:
tmp.next = l1
return dummy.next