当前位置: 首页 > news >正文

【链表经典题目】总结篇

【链表经典题目】总结篇

  • 1 虚拟头结点
  • 2 链表的基本操作
  • 3 反转链表
  • 4 删除倒数第N个节点
  • 5 链表相交
  • 6 环形链表
  • 总结


【链表】关于链表,你该了解这些!

1 虚拟头结点

在链表:听说用虚拟头节点会方便很多? 中,我们讲解了链表操作中一个非常总要的技巧:虚拟头节点。

链表的一大问题就是操作当前节点必须要找前一个节点才能操作。这就造成了,头结点的尴尬,因为头结点没有前一个节点了。

每次对应头结点的情况都要单独处理,所以使用虚拟头结点的技巧,就可以解决这个问题

在链表:听说用虚拟头节点会方便很多? 中,我给出了用虚拟头结点和没用虚拟头结点的代码,大家对比一下就会发现,使用虚拟头结点的好处。


2 链表的基本操作

在链表:一道题目考察了常见的五个操作! 中,我们通过设计链表把链表常见的五个操作练习了一遍。

这是练习链表基础操作的非常好的一道题目,考察了:

  • 获取链表第index个节点的数值
  • 在链表的最前面插入一个节点
  • 在链表的最后面插入一个节点
  • 在链表第index个节点前面插入一个节点
  • 删除链表的第index个节点的数值

可以说把这道题目做了,链表基本操作就OK了,再也不用担心链表增删改查整不明白了。

这里我依然使用了虚拟头结点的技巧,大家复习的时候,可以去看一下代码。


3 反转链表

在链表:听说过两天反转链表又写不出来了? 中,讲解了如何反转链表。

因为反转链表的代码相对简单,有的同学可能直接背下来了,但一写还是容易出问题。

反转链表是面试中高频题目,很考察面试者对链表操作的熟练程度

我在链表:听说过两天反转链表又写不出来了? 中,给出了两种反转的方式,迭代法递归法

建议大家先学透迭代法,然后再看递归法,因为递归法比较绕,如果迭代还写不明白,递归基本也写不明白了。

可以先通过迭代法,彻底弄清楚链表反转的过程!


4 删除倒数第N个节点

在链表:删除链表倒数第N个节点,怎么删? 中我们结合虚拟头结点双指针法来移除链表倒数第N个节点。

双指针的经典应用如果要删除倒数第n个节点,让fast移动n步,然后让fast和slow同时移动,直到fast指向链表末尾。删掉slow所指向的节点就可以了。


5 链表相交

【链表】leetcode面试题 02.07. 链表相交(C/C++/Java/Js) 使用双指针来找到两个链表的交点(引用完全相同,即:内存地址完全相同的交点)

该篇文章详细地讲解了两种思路,都及其重要!


6 环形链表

在链表:环找到了,那入口呢? 中,讲解了在链表如何找环,以及如何找环的入口位置。

这道题目可以说是链表的比较难的题目了。 但代码却十分简洁,主要在于一些数学证明。

主要考察两知识点:

  • 判断链表是否环
  • 如果有环,如何找到这个环的入口

总结

在这里插入图片描述
考察链表的操作其实就是考察指针的操作,是面试中的常见类型。

这里对链表部分的的总结来自Carl老师的《代码随想录》,强推!
代码随想录

By – Suki 2023/1/15

相关文章:

  • 一台服务器做两个网站/产品推广平台有哪些
  • wordpress验证码/百度快照网站
  • php网站开发建设/深圳英文站seo
  • 中国建设银行企业官网站/网站流量排行
  • 做网站非法吗/谷歌排名优化
  • 哈尔滨网站搭建/广州网站优化排名
  • 浅显易懂的三次握手与四次挥手
  • 【C++11】—— lambda表达式
  • 内核转储的设置
  • 【指针笔试题下】你知道大厂面试题的指针题是什么样的吗?快来通过这些面试题目检测一下自己吧!
  • 【北京理工大学-Python 数据分析-3.1Pandas库的基本使用】
  • 谷粒学院复习
  • ARC153C ± Increasing Sequence
  • 线程启动、结束与创建线程写法
  • uni-app使用手机号一键登录
  • HBase RowKey设计和实现
  • 代码随想录算法训练营第四期第五十九天 | 503.下一个更大元素II 、42. 接雨水
  • Promise详解