题目来源:https://leetcode-cn.com/problems/merge-two-sorted-lists/python
将两个有序链表合并为一个新的有序链表并返回。新链表是经过拼接给定的两个链表的全部节点组成的。 segmentfault
示例:微信
输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4
cur
指针,调整它的 next
指针;cur
节点后面;# # 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: '''将两个有序链表合并成一个链表而后返回 Args: l1: 有序链表 1 l2: 有序链表 2 Returns: 返回合并后的有序链表 ''' # 定义一个哨兵节点,用以正确返回合并后的链表 pre_head = ListNode(None) # 控制 cur 指针,比较节点大小 cur = pre_head # 比较两个链表的节点大小,当两个链表任意一个为空,则终止 while l1 and l2: # 当 l1 的节点较小,则指针指向 l1,同时向后移 if l1.val < l2.val: cur.next, l1 = l1, l1.next else: # 不然,指针指向 l2,同时向后移 cur.next, l2 = l2, l2.next # 维护 cur 指针 cur = cur.next # 考虑其中任意一个链表为空,将非空的链表拼接在合并链表后面 cur.next = l1 if l1 else l2 return pre_head.next
以上为本篇的主要内容。
结语:祝你们新春大吉,平安喜乐spa
题外话:但愿你们作好我的防御,如非必要,尽可能不出门。指针
欢迎关注微信公众号《书所集录》