JAVA 将两个有序链表合并为一个有序链表

这篇博客介绍了如何在JAVA中将两个有序链表合并为一个有序链表。首先进行异常判断,如两个链表都为空则返回null,然后通过比较链表头节点的大小确定新链表的起始节点。接着使用while循环,不断将较小的节点添加到新链表中,直到其中一个链表为空。最后,将非空链表的剩余部分追加到新链表的末尾。博主提供了详细的代码实现,包括创建Node对象、定义MergeNode类以及测试类MergeSingleLinkedList,输出了合并后的链表节点信息。
摘要由CSDN通过智能技术生成

将两个有序链表合并为一个有序链表

 

思路:

前提:必须保证两个链表为有序链表

1、异常判断
1)两个单链表都没空,则返回null
2)链表1为空,则返回链表2。反之返回链表1
3)比较两个链表头结点的大小。如果链表1的头结点比链表2的头结点小,则将新链表的头结点、尾节点指向链表1的头结点,同时将链表1的头结点更新为下一个结点。反之则将新链表的头结点指向链表2的头结点、尾节点,同时更新链表2的头结点为下一个结点。
2、使用while循环,当两个单链表都不为null的情况下,如果链表1的头结点<链表2的头结点,则将新链表的尾结点指向链表1的头结点,同时将更新后的新链表的最后一个结点更新成head1并将链表1的头结点后移。
反之,则同样的操作用于链表2。
3、循环结束后,判断两个链表中是否有空的链表,如果不为空,则将该链表的头结点及后面的结点直接放入新链表的末尾。
4、最后返回新链表的头结点

代码:

1、创建一个Node对象

 class Node{
    public int no;
    public String name;
    public String nickName;
    public Node next;

    public Node(int no,String name,String nickName){
        this.no = no;
     
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值