题解 | #合并两个排序的链表#
合并两个排序的链表
http://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337
class Solution:
def Merge(self , pHead1: ListNode, pHead2: ListNode) -> ListNode:
# write code here
ans = ListNode(0)
temp = ans
while pHead1 or pHead2:
a = pHead1.val if pHead1 else 99999
b = pHead2.val if pHead2 else 99999
if a>b:
temp.next = ListNode(b)
pHead2 = pHead2.next
else:
temp.next = ListNode(a)
pHead1 = pHead1.next
temp = temp.next
return ans.next
使用pHead1 or pHead2来判断是否退出循环,
a赋链表一的值,如果链表一为空则赋一个很大的数(比链表中最大值大),b的处理同a
这样处理可以在某一个链表走到头时该链表就不会再往前走了,不会越界,并且不用写三个while循环,虽然时间时间复杂度是一样的但是少些两个循环就很舒服,嘿嘿