Leetcode Day8 4
剑指 Offer 25. 合并两个排序的链表
输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
示例1:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
我真是傻了,我居然一开始想p对应l1,然后q对应l2,然后一个一个比插l1里面去,结果就是特别特别麻烦。
直接应该就是开个新的链表,然后l1,l2一个一个比过去,就很简单了。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode:
p=ListNode(0)
q=p
while l1 and l2:
if l1.val<l2.val:
p.next=l1
l1=l1.next
p=p.next
else:
p.next=l2
l2=l2.next
p=p.next
if l1: p.next=l1
else:
p.next=l2
return q.next

在一开始就设置q记录p所在链表的头结点,最后返回就会很简单。