type
status
date
slug
summary
tags
category
icon
password
状态
专注质量
预计(分钟)
开始时间
结束时间
本文部分参考了代码随想录中的内容,如有侵权请谅解。

🤔 从数组到链表

通过对数组部分的刷题积累,处理链表方面的问题就相对容易了。链表作为数据结构和算法中的另一个基本概念,大家都应该很熟悉了。因此,这部分问题大多数情况下只需要梳理一下思路就能解决,难度并不太大。

📝基础理论

链表类型

  • 单链表
  • 双链表
  • 循环链表
区别仅仅在于每一个结点部分的指针不同。

链表的定义和存储方式

链表和数组不同,它们在内存中不是连续存储的,而是通过一系列指针相互连接,就像串在一起的羊肉串一样。
在解决算法问题时,一般不需要考虑链表的定义。但在面试过程中,可能需要自己定义链表。下面是一个定义链表的参考示例:
基本上搞明白构造函数怎么写就够用了。

🤗题型

移除链表元素

这是链表中最简单的问题之一。在这里,首次引入了虚拟头节点。使用虚拟头节点的意义在于,可以不用分情况考虑如何处理头节点,这样在后续的问题中都可以采用该思路进行求解。

设计链表

一道题考察所有链表中的常见操作

翻转链表

面试中经常考察的问题,设置两个指针很容易弄清楚原理,熟练后使用递归的方法更加清晰。

删除链表的倒数第n个结点

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
进阶:你能尝试使用一趟扫描实现吗?
示例 1:
notion image
输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 示例 2:
输入:head = [1], n = 1 输出:[] 示例 3:
输入:head = [1,2], n = 1 输出:[1]
链表中有一种经典的出题方式,主要考察的是思路,相对来说代码编写比较简单。后续涉及到链表相交、环形链表的题目都有这种特点,思路比较固定,整理清楚后就很容易写出来。

参考文章

💡
Written by Aryue,editted by Notion AI.
 
 
代码随想录—数组代码随想录—哈希表
Aryue
Aryue
一个普通的干饭人🍚
公告
type
status
date
slug
summary
tags
category
icon
password
状态
专注质量
预计(分钟)
开始时间
结束时间
📧:578626935@qq.com