我是靠谱客的博主 醉熏黑猫,最近开发中收集的这篇文章主要介绍合并有序链表(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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部