mergeTwoLists的用法

mergetwolists()函数是一种用于合并两个已排序的链表的函数。其基本思想是让两个链表的头结点逐一比较大小,然后将较小的结点加入到一个新的链表中,直到其中一个链表为空。最后,将剩下的链表按照大小顺序继续加入到新链表的末尾,最终得到一个合并后的链表。
在具体实现上,可以使用递归的方式来实现。每次比较完两个链表的头结点大小后,选择较小的那个,然后将该结点的next指向下一次递归的结果。由于这个过程是递归的,所以在递归到底层之后,最终会返回一个已经合并好的链表。
需要注意的是,如果两个链表中有一个为空,那么不需要进行比较,直接将另一个链表全部插入到新链表未尾即可。同时,如果两个链表有相同的值,那么可以将这两个值同时插入到新链表中。
在使用mergetwolists()函数时,需要传入两个已排序的链表作为参数,并且该函数返回值为一个新的合并后的链表。如果要修改原来的链表,需要在函数外部进行相应的操作。
 

LeetCode21:合并两个有序链表

class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        if (list1 == null) {
            return list2;
        }
        else if (list2 == null) {
            return list1;
        }
        else if (list1.val < list2.val) {
            list1.next = mergeTwoLists(list1.next, list2);
            return list1;
        }
        else {
            list2.next = mergeTwoLists(list1, list2.next);
            return list2;
        }
    }
}

你可能感兴趣的:(java)