概述
基于两个有序的链表融合成一个新的有序链表,首先了解链表的基本操作:
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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复