leetcode链表
leetcode的链表实现
400分的好苗子
这个作者很懒,什么都没留下…
展开
-
143.重排链表
利用getLen函数,得到L的长度,进行while循环,当i <= j时,将s中的节点插入新的链表P中,若j<i,则将r中的Ln插入P链表中,直到i+j = len,及i和j相加等于链表的长度为止,此时的P即为所求,如果此时函数的类型是LinkList,返回P即为所求了,但是函数是void类型,所以还要更改L中的值,此时用一个while循环,将P中的值赋值给L即可。原创 2023-06-15 17:36:56 · 91 阅读 · 0 评论 -
86.分隔链表(C语言实现)
分别定义两个链表p和q,初始化一个链表P,让p和q指向输入的链表L。第一个while循环遍历链表p,当p的值小于输入值时,创造一个节点s,将s插入链表R中,第二个while循环,遍历链表q,当q的值大于等于输入值时,将节点插入链表R,最后输入R->next(因为头节点是NULL,所以要返回R>next否则会出现如下结果)给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。商业转载请联系官方授权,非商业转载请注明出处。原创 2023-06-11 19:18:54 · 110 阅读 · 0 评论 -
两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[1,2,3,4,5],fast指针会指向4,此时fast->next->next为空,跳出循环。交换时fast指针最终会指向4,此时fast->next为空,要跳出循环。如果是奇数长度的链表如。:一定要在while中利用if来判断快指针是否为空,例如是偶数长度的链表时[1,2,3,4],利用快慢指针的思路,将快指针与慢指针中的值进行交换。原创 2023-06-11 14:03:38 · 43 阅读 · 0 评论 -
leetcode链表的中间结点(简单)
利用快慢指针,慢指针slow走一步,快指针fast走两步,当fast走到终点时,返回slow。首先求出链表的长度,之后通过len / 2,找到链表的中间位置,之后按值查找。原创 2023-05-29 12:04:50 · 53 阅读 · 0 评论 -
leetcode二进制链表转整数(C语言)
链接:https ://leetcode.cn/problems/convert-binary-number-in-a-linked-list-to-integer/solution/jin-zhi-zhuan-huan-by-vvonderful-bhaskar-qhjb/作者:vvonderful - bhaskaraqnf。注意:使用pow()函数是记得引入头文件。参考了大佬的计算方法。原创 2023-05-26 17:41:30 · 56 阅读 · 0 评论 -
leetcode回文链表(简单)C语言实现
首先用一个函数对链表进行反转,将链表逆置,同时在isPalindrome函数中,逐一比较原链表和逆置链表中的值,如果有值不相同则返回false,该链表不是回文链表;否则返回true,该链表是回文链表。原创 2023-05-26 15:31:04 · 91 阅读 · 1 评论 -
leetcode移除链表元素(简单)C语言实现
else if里面的判断条件,一定要把prev!= NULL写在前面,不然prev->next行会报错。代码实现,及通过while循环来判断节点的值是否与要删除的值相同,如果相同则删除该节点。及prev->next可能为空指针的错误。原创 2023-05-22 22:53:39 · 99 阅读 · 1 评论 -
leetcode反转链表C语言实现(简单)
如图,是一个定义好的链表,当链表发生逆置的时候,NULL也会被移动到首位,所以要加上。q = R->next这步,从第二个元素开始遍历。我的思路是用头插法对链表进行逆置操作。原创 2023-05-21 21:57:05 · 100 阅读 · 1 评论 -
leetcode相交链表(简单)
leetcode上面的报错,说是我例子一没有通过,但是我感觉是他的样例有问题。在VS 2022上可以运行但是不知道为什么在leetcode上无法运行。下面是在VS 2022上的运行效果图,当有相交的链表时,输出相交链表。,希望有明白的大佬可以指点我一下。预期结果应该是1而不是8吧。原创 2023-05-19 16:49:40 · 87 阅读 · 1 评论 -
LeetCode环形链表(简单)
这道题我的思路是使用快慢指针,定义慢指针slow和块指针fast,slow每次移动一位,fast指针每次移动两位。= NULL)判断链表是否为空,若fast == NULL则链表为空,若fast->next == NULL则链表只有一个值,链表无环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。若均为空,则执行while循环,当slow慢指针和fast快指针相遇时,链表有环。给你一个链表的头节点 head ,判断链表中是否有环。原创 2023-05-19 10:54:24 · 78 阅读 · 0 评论 -
leetcode链表去重(简单)
在leetcode上提交是记得删掉main函数。删除所有重复的元素,使每个元素只出现一次。给定一个已排序的链表的头。原创 2023-05-14 17:52:00 · 143 阅读 · 0 评论