我是靠谱客的博主 醉熏黑猫,这篇文章主要介绍合并有序链表(Java),现在分享给大家,希望可以做个参考。

在这里插入图片描述

基于两个有序的链表融合成一个新的有序链表,首先了解链表的基本操作:

Java实现双向链表结构

(1)思路分析:

既然是两条有序合并为一条,那么肯定要进行比较大小。
那么我们就以第一条有序链表(A)为基础,循环拿另外一条(B)每个元素去比较大小,插入到合适的位置。
如果B的元素小于A最前面的元素,则插入到A的最前面。
如果B从某个元素开始比A的全部元素都大,又因为B是有序链表,这个就简单了,直接把B拼接到A的尾巴即可,无需再一个个比较。
PS:
由于链表有头尾两节点,在内存中属于分散存储,所以设置好头尾下一个Node节点很重要,断了一环,后续全崩。
自定义链表结构跟普通数组/链表不同,不可能简单的for,所以要递归一个个node.getNext(); 拿到下一个节点的元素。

思路还是很清晰很简单的,下面开始写代码:

填充生成第一条有序链表:

private static void fullListNode_1(ListNode headListNode, ListNode preNode, int value) {
   
        if (value >=4){
   
            return;
        }
        int i = value;
        headListNode.setPrevious(preNode);
        headListNode.setData(i);
        ListNode tempListNode = new ListNode();
        headListNode.setNext(tempListNode);
        i++;
        fullListNode_1(headListNode.getNext(), headListNode, i);
    }

填充生成第二条有序链表:

private static void fullListNode_2(ListNode headListNode, ListNode preNode, int value) {
   
        if (value >=7){
   
            return;
        <

最后

以上就是醉熏黑猫最近收集整理的关于合并有序链表(Java)的全部内容,更多相关合并有序链表(Java)内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(143)

评论列表共有 0 条评论

立即
投稿
返回
顶部