【数据结构】合并两个有序链表

本文介绍了一道链表面试题,即如何合并两个递增排序的链表,保持新链表的节点仍然递增排序。解题思路包括找到较小头结点作为新链表头,通过递归方式不断比较剩余链表节点,直至某链表为空。代码实现中需要注意特殊情况的处理,如链表为空或存在相等节点的情况。
摘要由CSDN通过智能技术生成

链表面试题2:输入两个递增排序的链表,合并这两个链表并使新链表的结点仍然是按照递增排序的。

  • 分析题目:根据题目可模拟画出如下示意图,须将链表1和链表2合并并排序为链表3

  • 解题思路:

    • 1、先找出链表1和链表二中较小的头结点,作为链表3的头结点

    • 2、使链表3的头结点指向剩余链表中较小的头结点

    • 3、重复找到剩余链表中较小结点,连向链表3

    • 4、这一过程可以使用递归来做

      • 每次传参传合并链表的尾结点和剩余链表中较小的结点

      • 递归的截至条件是其中一条链表剩余结点为空

  • 图解:

 

  • 代码实现

                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值