本文实例为大家分享了java合并两个排序的链表,供大家参考,具体内容如下
/**
*
* 剑指offer编程题(JAVA实现)——第16题:合并两个排序的链表
*
* 输入两个单调递增的链表,输出两个链表合成后的链表, 当然我们需要合成后的链表满足单调不减规则。
*
*/
public class Test16 {
public static ListNode Merge(ListNode list1, ListNode list2) {
if (list1 == null) { // 首先判断是否有链表为空
return list2;
} else if (list2 == null) {
return list1;
}
ListNode end1 = list1;
ListNode end2 = list2;
ListNode tmp; //end1和end2分别代表两个链表,tmp用于中间合成链表
if (end1.val > end2.val) {//把首节点小的链表看作end1
tmp = end1;
end1 = end2;
end2 = tmp;
} else {
}
ListNode newNode = end1;//用于最终返回的链表首节点
while (end1.next != null && end2.next != null) { //将链表2中的元素插入链表1中合适的位