合并两个有序链表(java实现)

Posted youdiaodaxue16

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了合并两个有序链表(java实现)相关的知识,希望对你有一定的参考价值。

题目:

 

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
看到这个题,让我想起上次写的博客,合并两个有序的数组
这个题,是链表的合并,这就比较好移动,可以用递归实现链表的拼接
所以,代码如下:
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null){
            return l2;
        }
        if(l2 == null){
            return l1;
        }
        ListNode n1 = l1;
        ListNode n2 = l2;
        
        ListNode head = null;
        if(l1.val < l2.val){
            head = l1; // 头就为l1,
            mergeTwoLists(l1.next,l2); //进入下一个节点的判断
        }else{
            head = l2;//头就为l2,
            mergeTwoLists(l1,l2.next);//进入下一个节点的判断
        }
        return head;
    }
}

 

 

以上是关于合并两个有序链表(java实现)的主要内容,如果未能解决你的问题,请参考以下文章

21_合并两个有序链表

力扣----7. 合并两个有序链表(JavaScript, Java实现)

力扣----7. 合并两个有序链表(JavaScript, Java实现)

第13题合并两个有序链表(考察递归)

第13题合并两个有序链表(考察递归)

leetCode第21题——合并两个有序链表