线性数据结构案例4 —— 合并两个有序的单链表 合并之后依然有序

Posted gary97

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性数据结构案例4 —— 合并两个有序的单链表 合并之后依然有序相关的知识,希望对你有一定的参考价值。

一、介绍

emsp; 我们定义一个新链表然后,将两个链表的元素依次比较,放入比较最小的放到新链表前面。

二、代码

    public static Node mergeByOrder(Node l1, Node l2) {
        if(l1.next == null || l2.next == null) {
            return l1.next == null ? l2 : l1;
        }
        Node newLinkedHead = new Node(0, "");
        l1 = l1.next; // 头节点没有数据我们不要
        l2 = l2.next; // 头节点没有数据我们不要
        Node temp = newLinkedHead;

        while (l1 != null && l2 != null) {
            if (l1.no <= l2.no) {
                temp.next = l1;
                temp = temp.next;
                l1 = l1.next;
            } else {
                temp.next = l2;
                temp = temp.next;
                l2 = l2.next;
            }
        }
        if (l1 == null) {
            temp.next= l2; // 连接剩余节点
        }
        if (l2 == null) {
            temp.next= l1; // 连接剩余节点
        }
        return newLinkedHead;
    }
}

以上是关于线性数据结构案例4 —— 合并两个有序的单链表 合并之后依然有序的主要内容,如果未能解决你的问题,请参考以下文章

单链表的合并

C语言单链表合并

合并两个有序单链表

将两个顺序存储的有序表合并成一个有序表

合并两个有序的单链表,合并之后的链表依然有序出现频率高

两个有序单链表合并成一个有序单链表的java实现