🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺

💗点关注不迷路,总有一些📖知识点📖是你想要的💗

⛽️今天的内容是     Leetcode  203. 移除链表元素      ⛽️💻💻💻

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

示例 1:

输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]

示例 2:

输入:l1 = [], l2 = []
输出:[]

示例 3:

输入:l1 = [], l2 = [0]
输出:[0]

提示:

    两个链表的节点数目范围是 [0, 50]
    -100 <= Node.val <= 100
    l1 和 l2 均按 非递减顺序 排列

递归:

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
    //递归
    if list1==nil {
        return list2
    }
    if list2==nil {
        return list1
    }
    if list1.Val<list2.Val{
        list1.Next=mergeTwoLists(list1.Next,list2)
        return list1
    }else {
        list2.Next=mergeTwoLists(list1,list2.Next)
        return list2
    }
}

迭代:

func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
    res:=&ListNode{}
    temp := res
    for l1!=nil&&l2!=nil {
        if l1.Val < l2.Val {
            temp.Next=l1
            l1=l1.Next
        }else {
            temp.Next=l2
            l2=l2.Next
        }
        temp=temp.Next
    }
    if l1!=nil{
        temp.Next=l1
    }else {
        temp.Next=l2
    }
    return res.Next
}