- 博客(4)
- 收藏
- 关注
原创 力扣:142.环形链表II(快慢指针)
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。用两个快慢指针p1,p2来判断链表是否有环,p1每次向后移动2个节点,p2每次向后移动1个节点。当链表有环时,要返回出现环的位置,这时候我们可以把p2放回头节点p2=head;给定一个链表的头节点 head ,返回链表开始入环的第一个节点。解释:链表中有一个环,其尾部连接到第一个节点。输出:返回索引为 1 的链表节点。
2024-08-31 18:39:00
331
原创 力扣:83. 删除排序链表中的重复元素
首先让p2向链表后方移动,链表是有序的,因此相等的数是紧挨在一起的,所以当p1->val与p2->val不相等时,说明p2已经跳过了 所有值与p1->val想同的数,让p1->next=p2;第二个问题:在第三个测试用例中头链表为[],代表的含义是head==nullprt,而不是head->val=0;给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次。返回 已排序的链表。输入:head = [1,1,2,3,3]输入:head = [1,1,2]输出:[1,2,3]
2024-08-30 14:17:35
231
原创 【力扣21】合并两个有序链表
这道题目考查链表的使用,初始创建一个链表头head,再创建一个节点p用于连接链表。让p指向head开始连接链表,让p指向值小的节点,一个个节点遍历下去,直到一个节点完全走完。剩下的另一个节点的数肯定是要大于之前的数,因此直接将剩下的链表全接到节点p的后面,便可完成链表的合并。输入:l1 = [1,2,4], l2 = [1,3,4]输入:l1 = [], l2 = [0]两个链表的节点数目范围是 [0, 50]输入:l1 = [], l2 = []输出:[1,1,2,3,4,4]
2024-08-29 20:46:00
274
原创 力扣:1.两数之和
进行一次遍历,如果target-num[x]在map中不存在,则将数据存入map中,如果存在,则得到结果,将数据赋值给result,进行输出。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。你可以按任意顺序返回答案。
2024-08-25 19:50:59
179
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人