Leetcode:Merge Two Sorted Lists

题目如下:

21Merge Two Sorted Lists

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


代码如下:

# 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):
		tem1=l1
		tem2=l2
        
		if(l1==None):
			return l2
		if(l2==None):
			return l1
        
		if(l1.val>l2.val):
			rtype=tem2
			tem2=tem2.next
		else:
			rtype=tem1
			tem1=tem1.next
			
		tem_ans=rtype
		while(tem1!=None and tem2!=None):
			if(tem1.val>tem2.val):
				tem_ans.next=tem2
				tem_ans=tem_ans.next
				tem2=tem2.next
			else:
				tem_ans.next=tem1
				tem_ans=tem_ans.next
				tem1=tem1.next
		
		if(tem1==None):
			tem_ans.next=tem2
		else:
			tem_ans.next=tem1
		return rtype


分析如下:

要将两个已经排序好的序列合并成一个序列,只需要每一次都选两个序列中最小的元素,放在答案序列的末尾即可。

当有一个队列为空的时候,另一个序列直接全部接到答案序列的后面。

返回答案序列。

需要注意的是,输入要排序的序列L1,L2,要先判断一下他们是否为空。


结果如下:





猜你喜欢

转载自blog.csdn.net/qq_41794348/article/details/80060587