leetCode – 合并两个有序链表
题目描述
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
测试事例
示例 1
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = []
输出:[]
示例 3:
输入:l1 = [], l2 = [0]
输出:[0]
题目分析
- 链表的官方解法是递归算法
- 先判断链表是否为空,不为空的话判断链表中的值大小
- 然后将链表按大小结点相连
- 递归最重要的是找到递归结束的条件是什么
- 另一种方法是创建一个新的链表
解题方法
一.递归算法
解题思路
- 先判断链表空值情况
- 不为空的话进行下一步比较
- 利用链表的指向比较大小
- 如果两个链表有一个为空,递归结束。
解题代码
- 源代码
class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
if(l1 == null){
return l2;
}else if(l2 == null){
return l1;