![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
1000sakura
https://home.cnblogs.com/u/1000sakura/
展开
-
【LeetCode】Linked List Cycle II(环形链表 II)
这道题是LeetCode里的第142道题。题目要求:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果pos是-1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1...原创 2018-11-09 13:41:31 · 138 阅读 · 0 评论 -
【LeetCode】Merge Two Sorted Lists(合并两个有序链表)
这道题是LeetCode里的第21道题。题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4这道题需要考虑的地方挺多的,首先是头节点的处理,还有尾节点的链接问题。对于头节点,我的想法是...原创 2019-04-13 12:55:20 · 145 阅读 · 0 评论 -
【LeetCode】Remove Nth Node From End of List(删除链表的倒数第N个节点)
这道题是LeetCode里的第19道题。题目要求:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?先...原创 2019-03-24 15:15:44 · 74 阅读 · 0 评论 -
【LeetCode】Intersection of Two Linked Lists(相交链表)
这道题是LeetCode里的第160道题。题目讲的:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of ...原创 2019-03-16 09:59:34 · 130 阅读 · 0 评论 -
【LeetCode】Design Linked List(设计链表)
这道题是LeetCode里的第707到题。这是在学习链表时碰见的。题目要求:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val和next。val是当前节点的值,next是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性prev以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:...原创 2018-12-01 14:37:26 · 336 阅读 · 0 评论 -
【LeetCode】Linked List Cycle(环形链表)
这道题是LeetCode里的第141道题。题目要求:给定一个链表,判断链表中是否有环。进阶:你能否不使用额外空间解决此题?简单题,但是还是得学一下这道题的做法,这道题是用双指针一个fast,一个slow。fast每一步前进两个节点,slow前进一个节点。判断fast和slow是否相等或者为空就行了。贴个代码:/** * Definition for singly-...原创 2018-12-01 14:22:55 · 232 阅读 · 0 评论 -
【LeetCode】Reverse Nodes in k-Group(k个一组翻转链表)
这道题是LeetCode里的第25道题。题目要求:给出一个链表,每k个节点一组进行翻转,并返回翻转后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么将最后剩余节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当k= 2 时,应当返回:2->1->4->3->...原创 2018-12-01 13:54:59 · 118 阅读 · 0 评论 -
【LeetCode】Swap Nodes in Pairs(两两交换链表中的节点)
这道题是LeetCode里的第24题。题目要求:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定1->2->3->4, 你应该返回2->1->4->3.说明:你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。这道题还是很简单的,题目说明也很清晰。画画图就能完成题...原创 2018-12-01 12:58:27 · 293 阅读 · 1 评论 -
【数据结构与算法】链表——递增排序
今天看书时偶然想到的问题,书上是要求将一个数据插入一个有序链接的线性链表中,所以我想先进行链表内的数据排序在进行插入数据。在这里我只写了排序的函数。函数实现:void Sort(LinkList&list, int &n) { for (int i = 0; i < n - 1; i++) { LinkList p = list, q; q ...原创 2018-11-25 14:05:09 · 1328 阅读 · 0 评论 -
【数据结构与算法】线性表——删除重复元素
线性表是一种随机存取的结构,和链表不同,链表顺序存取的结构。但是,线性表是一种顺序存储的结构,而链表是链式存储结构。两者都是线性的,但区别不同。进入主题:1.假如有一串数据元素,要求删除其中的重复元素。首先想到的是用两层循环,第一层从第一个元素开始,第二层从第一层元素的下一个元素开始。就是假如第一层是ai元素,则第二层就为ai+1元素。函数实现:void Purge1(E...原创 2018-11-25 13:57:22 · 2098 阅读 · 0 评论 -
【LeetCode】Add Two Numbers(两数相加)
这道题是LeetCode里的第2道题。题目要求:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -&...原创 2018-11-14 21:11:35 · 142 阅读 · 0 评论 -
【LeetCode】Remove Duplicates from Sorted List(删除排序链表中的重复元素)
这道题是LeetCode里的第83道题。题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3直接遍历链表使用双指针或者使用哈希表都行,只是哈希表需要新建一个链表来返回结果...原创 2019-04-13 13:30:15 · 93 阅读 · 0 评论