Leetcode
文章平均质量分 58
Chaser Feng
一直在路上!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Leetcode】链表的回文结构与相交链表
文章目录链表的回文结构相交链表 链表的回文结构 所谓回文结构通俗的讲就是链表的节点要关于中间的节点对称,那么如何判断是否对称呢,思路如下: 首先我们需找出链表中的中间节点,然后再将中间节点作为新的头节点来创建一个新的链表,往后的节点依次尾插到该头节点后,再将该新链表逆置,最后再将新链表与原链表做比较即可。 图示如下: /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), nex原创 2022-01-29 15:10:08 · 2018 阅读 · 22 评论 -
【Leetcode】链表的合并与分割
文章目录合并两个有序链表链表分割 合并两个有序链表 首先看题目描述: 当看完题目后,我们知道实现两链表的合并不可能在原链表中完成,所以我们需要新建链表,通过对原先两链表之间各个节点的比较依次将节点尾插在新建的链表中,最后返回新节点即可。图示如下: 需要注意的是,当两链表中有一个链表已经走到尾结点,那么证明另一个链表中的剩下的节点的值都是比走结束的那个链表中的节点值要大,所以最后还需将这些剩下的节点都尾插到新链表中。 代码实现如下: /** * Definition for singly-linked原创 2022-01-27 18:21:53 · 1427 阅读 · 29 评论 -
【Leetcode】单链表中快慢指针(双指针)的运用
文章目录Leetcode876.链表的中间结点链表中倒数第k个结点 Leetcode876.链表的中间结点 相信对于学习链表的初学者来说,首次看到这个题目时,首先想到的应该是通过对整个链表进行一遍遍历求出链表节点的个数,然后再通过循环来找到中间节点(实不相瞒我第一次也是这样想的)。但是通过两次循环,不免增加了代码量和时间复杂度。那么,接下来就介绍一下最优的解题思路。 最优思路 定义两个指针,其中一个指针为慢指针,另一个指针为快指针,对本题而言,慢指针每次走一步(向前移动一个节点),快指针每次走两步(向前移原创 2021-11-13 21:14:41 · 1365 阅读 · 29 评论 -
Leetcode初体验:移除元素 与 删除有序数组中的重复项
文章目录移除元素删除有序数组中的重复项 移除元素 图解: 代码如下: int removeElement(int* nums, int numsSize, int val){ int src=0; int dst=0; while(src<numsSize) { if(nums[src]==val) //当src处的位置为val时,src向前移动一步 { src++; } els原创 2021-10-12 16:34:45 · 542 阅读 · 33 评论
分享