jz25 合并两个排序的链表
描述
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。
数据范围: 0≤10000≤n≤1000,−1000≤节点值≤1000−1000≤节点值≤1000
要求:空间复杂度 O(1),时间复杂度 O(n)
如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:
或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},转换过程如下图所示:
示例1
输入:
{1,3,5},{2,4,6} |
返回值:
{1,2,3,4,5,6} |
示例2
输入:
{},{} |
返回值:
{} |
示例3
输入:
{-1,2,4},{1,3,4} |
返回值:
{-1,1,2,3,4,4} |
题解1
可以使用虚拟头结点,可以再新建一个链表,然后把两个链表的结点从小到大依次插入到新链表中即可。使用双指针分别指向两个链表,然后每次将较小的结点放在虚拟头结点后面,然后指针(刚刚较小的)放后移动,另一个指针不动
/** |
本来打算将一个链表插入到另一个链表之中的,但是太复杂了,一直没有AC
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruvikm!