本文主要是介绍12.合并两个有序列表-Leetcode 021(python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
- 题目描述
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
- 示例
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
- 解决思路
依次比较链表l1和l2中的每一个节点,将较小值放入合并链表中,要注意的是可能出现其中一个链表比较长的情况,那么直到比较结束后仍然不为空,此时只需把该链表的剩余节点全部放入合并链表中即可。
- 代码
#定义一个新的链表,用于存放合并的节点merge = ListNode(0)#复制这个链表起点的节点,s指向合并链表s = merge#在l1和l2均不为空的前提下:while l1 and l2:#比较l1当前节点和l2当前节点,把较小的节点放入合并链表中if l1.val > l2.val:merge.next = l2l2 = l2.nextelse:merge.next = l1l1= l1.nextmerge = merge.next#如果比较结束后l1链表中还有节点,那么剩余节点的值必然是两个链表合并后的一部分最大值if l1:merge.next = l1#l2同理if l2:merge.next = l2return s.next
这篇关于12.合并两个有序列表-Leetcode 021(python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!