题目描述:
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
思路:
分别比较两个list里面的第一个数值,小的创建一个新节点连接到新的list中。最后输出新的list。
代码:
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
#初始化linked list
head = ListNode(0)
#创建指针
ptr = head
while True:
if l1 is None and l2 is None:
break
elif l1 is None:
ptr.next = l2
break
elif l2 is None:
ptr.next = l1
break
else:
smaller = 0
if l1.val < l2.val:
smaller = l1.val
l1 = l1.next
else:
smaller = l2.val
l2 = l2.next
newNode = ListNode(smaller) #将新的数值添加到新的节点中
ptr.next = newNode #将该节点连接到linked list中
ptr = ptr.next #移动新linked list中的指针
return head.next