🌺每天不定期分享一些包括但不限于计算机基础、算法、后端开发相关的知识点,以及职场小菜鸡的生活。🌺
💗点关注不迷路,总有一些📖知识点📖是你想要的💗
⛽️今天的内容是 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
}