博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 合并两个有序链表
阅读量:6676 次
发布时间:2019-06-25

本文共 1593 字,大约阅读时间需要 5 分钟。

编程实现合并两个有序(假定为降序)单链表的函数,输入为两个有序链表的头结点,函数返回合并后新的链表的头节点,

要求:不能另外开辟新的内存存放合并的链表。

递归方式:

/*      * 递归方式     */    public LinkNode MergeLinkList(LinkNode head1,LinkNode head2){        if(head1 == null)            return head2;        if (head2 == null)            return head1;        LinkNode mergeHead = null;        if(head1.value < head2.value){            mergeHead = head1;            mergeHead.next = MergeLinkList(head1.next,head2);        }        else        {            mergeHead = head2;            mergeHead.next = MergeLinkList(head1,head2.next);        }        return mergeHead;    }

非递归方式:

/*     * 非递归方式     */    public LinkNode MergeLinkList_1(LinkNode head1,LinkNode head2){        if(head1 == null)            return head2;        if (head2 == null)            return head1;        LinkNode mergeHead;        LinkNode temp1 = null;        LinkNode temp2 = null;        if(head1.value < head2.value){            mergeHead = head1;            temp1 = head1.next;            temp2 = head2;        }else{            mergeHead = head2;            temp1 = head1;            temp2 = head2.next;        }        LinkNode temp = mergeHead;        while(temp1!=null || temp2 !=null){            if(temp1.value < temp2.value){                temp.next = temp1;                temp = temp1;                temp1 = temp1.next;            }else{                temp.next = temp1;                temp = temp2;                temp2 = temp2.next;            }        }        temp.next = temp1==null ? temp2:temp1;        return mergeHead;    }

 

转载于:https://www.cnblogs.com/hfczgo/p/4056019.html

你可能感兴趣的文章
mysqldump实现mysql备份小脚本
查看>>
JQuery--实用技巧总结
查看>>
语言,编程语言
查看>>
Redis事务处理
查看>>
C# []、List、Array、ArrayList 区别及应用
查看>>
继续说一下js对数组的处理---删除某个指定元素的方法
查看>>
data truncated for column at row 1原因
查看>>
java 关键字
查看>>
linux io过程自顶向下分析
查看>>
UNIX 技巧: UNIX 高手的另外10个习惯
查看>>
Oracle数据库查询锁表
查看>>
iptables 基本说明
查看>>
CAP原理和BASE思想
查看>>
彻底卸载SQL SERVER
查看>>
FineReport:任意时刻只允许在一个客户端登陆账号的插件
查看>>
数据可视化
查看>>
我的php常用函数
查看>>
Android Weekly Notes Issue #254
查看>>
Zeppelin初探
查看>>
kvm(七)客户机vm主机磁盘扩容
查看>>