![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
文章平均质量分 73
JAVA-cjing
我是这样的人,如果你问我一个问题我不知道答案的话,我会直接告诉你“我不知道”。但我向你保证:我知道怎样找到答案,而且我一定会找出答案的
展开
-
面试题:链表相交
这个题目其实没有用到虚拟节点之类的。就是一个简单的双指针,利用引用相同表明2个节点相同找出2个链表的交点。这个题目也很有意思:2个链表长度不一样,我们就让2个链表首尾相连。A+B = B+A。这样达到2个链表长度一致。长度一致以后寻找相同的节点,就是利用双指针一步一步的对比。原创 2024-02-19 23:04:13 · 544 阅读 · 0 评论 -
142.环形链表II
这个问题,其实我觉得就是考了一个数学公式。判断是否有环,很简单,使用快慢指针就可以。但是难的是推导到x=z这个公式:也就是从相遇点和从头结点同时出发,直到相遇的点,那就是环的入口。原创 2024-02-19 22:37:59 · 360 阅读 · 0 评论 -
删除链表的倒数第N个节点
双指针在解决这种只允许遍历一遍的问题上有很好的效果。原创 2024-02-18 22:06:56 · 997 阅读 · 0 评论 -
反转一个单链表
双指针法在解决链表的时候,是一种常见的算法。比如后面的链表中寻找环,也是利用双指针(快慢指针)相遇来判断是否有环。这个题目,唯一需要注意的是:虽然只有4行代码。但是你得理解每行代码的意义。实在不行,自己手动画一画,也就理解了。如果还是理解不了,先记着吧,后面熟能生巧。嘻嘻。原创 2024-02-18 18:02:02 · 438 阅读 · 0 评论 -
两两交换链表中的节点
这个题目其实还可以通过递归去解答,但是鄙人不才。看到递归感觉自己跟个傻子一样。要想到用虚拟节点去解决交换(需要断开重连)。另外也需要自己在纸上画一下交换的步骤、顺序很重要。顺序不同、代码就不同。找准每个变量的定义。以及当前节点所代表的的意义附:以上图都来自于代码随想录。原创 2024-02-17 12:18:33 · 392 阅读 · 0 评论 -
设计链表(不难,代码稍微多一点)
利用虚拟节点处理 删除、更新操作。。新增节点的时候,注意下代码顺序。原创 2024-02-16 18:01:32 · 851 阅读 · 0 评论 -
移除链表元素
链表相关遇到删除操作,需要建立虚拟节点进行删除。原创 2024-02-16 16:10:34 · 367 阅读 · 0 评论