草庐IT

Listnode

全部标签

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例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]-100l1和l2均按非递减顺序排列来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路还是分递归和迭代

leetcode 206. Reverse Linked List 反转链表(简单)

一、题目大意给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提示:链表中节点的数目范围是[0,5000]-5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用迭代和递归来实现,迭代思路

leetcode 148. Sort List 排序链表(中等)

一、题目大意给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[]提示:链表中节点的数目在范围[0,5*104]内-105进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/sort-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用快慢指针将列表

leetcode 21. Merge Two Sorted Lists 合并两个有序链表(简单)

一、题目大意将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例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]-100l1和l2均按非递减顺序排列来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-two-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路还是分递归和迭代

leetcode 206. Reverse Linked List 反转链表(简单)

一、题目大意给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]示例2:输入:head=[1,2]输出:[2,1]示例3:输入:head=[]输出:[]提示:链表中节点的数目范围是[0,5000]-5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-linked-list著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路用迭代和递归来实现,迭代思路

leetcode 23. Merge k Sorted Lists 合并K个升序链表(困难)

一、题目大意标签:栈和队列https://leetcode.cn/problems/merge-k-sorted-lists给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例2:输入:lists=[]输出:[]示例3:输入:lists=[[]]输出:[]提示:k==lists.length00-

leetcode 23. Merge k Sorted Lists 合并K个升序链表(困难)

一、题目大意标签:栈和队列https://leetcode.cn/problems/merge-k-sorted-lists给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6示例2:输入:lists=[]输出:[]示例3:输入:lists=[[]]输出:[]提示:k==lists.length00-

代码随想录算法训练营第四天|24、两两交换链表中的节点|19、删除链表的倒数第N个节点|面试题02.07.链表相交|142、环形链表Ⅱ

24、两两交换链表中的节点·模拟节点交换题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/思路:循环中两两交换   手写模拟一下交换的过程就比较容易了   下图是我写的模拟过程: 代码实现:中规中矩地模拟就完事     时间复杂度O(n)     空间复杂度O(1)/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nu

代码随想录算法训练营第四天|24、两两交换链表中的节点|19、删除链表的倒数第N个节点|面试题02.07.链表相交|142、环形链表Ⅱ

24、两两交换链表中的节点·模拟节点交换题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/思路:循环中两两交换   手写模拟一下交换的过程就比较容易了   下图是我写的模拟过程: 代码实现:中规中矩地模拟就完事     时间复杂度O(n)     空间复杂度O(1)/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),next(nullptr){}*ListNode(intx):val(x),next(nu

力扣02 两数相加

力扣02两数相加题目:给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。示例:2→4→35→6→4结果:7→0→8输入:L1=[2,4,3]​ L2=[5,6,4]输出:L=[7,0,8]注:因为4+6=10个位是0十位是1所以要向前进1解法一:迭代法解题思路:定义一个变量为total用来存储两个数字相加的和,定义一个变量为next1用来存储total的十位上的数字也就是需要向前进的数字,可以先建立一个虚拟头结点,这个虚拟头结点指向