mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-07 07:35:35 +08:00
更新 链表理论基础 排版格式修复
This commit is contained in:
@ -16,15 +16,15 @@
|
|||||||
如图所示:
|
如图所示:
|
||||||

|

|
||||||
|
|
||||||
# 链表的类型
|
## 链表的类型
|
||||||
|
|
||||||
接下来说一下链表的几种类型:
|
接下来说一下链表的几种类型:
|
||||||
|
|
||||||
## 单链表
|
### 单链表
|
||||||
|
|
||||||
刚刚说的就是单链表。
|
刚刚说的就是单链表。
|
||||||
|
|
||||||
## 双链表
|
### 双链表
|
||||||
|
|
||||||
单链表中的指针域只能指向节点的下一个节点。
|
单链表中的指针域只能指向节点的下一个节点。
|
||||||
|
|
||||||
@ -35,7 +35,7 @@
|
|||||||
如图所示:
|
如图所示:
|
||||||

|

|
||||||
|
|
||||||
## 循环链表
|
### 循环链表
|
||||||
|
|
||||||
循环链表,顾名思义,就是链表首尾相连。
|
循环链表,顾名思义,就是链表首尾相连。
|
||||||
|
|
||||||
@ -44,7 +44,7 @@
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
# 链表的存储方式
|
## 链表的存储方式
|
||||||
|
|
||||||
了解完链表的类型,再来说一说链表在内存中的存储方式。
|
了解完链表的类型,再来说一说链表在内存中的存储方式。
|
||||||
|
|
||||||
@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
这个链表起始节点为2, 终止节点为7, 各个节点分布在内存的不同地址空间上,通过指针串联在一起。
|
这个链表起始节点为2, 终止节点为7, 各个节点分布在内存的不同地址空间上,通过指针串联在一起。
|
||||||
|
|
||||||
# 链表的定义
|
## 链表的定义
|
||||||
|
|
||||||
接下来说一说链表的定义。
|
接下来说一说链表的定义。
|
||||||
|
|
||||||
@ -100,9 +100,9 @@ head->val = 5;
|
|||||||
|
|
||||||
所以如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值!
|
所以如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值!
|
||||||
|
|
||||||
# 链表的操作
|
## 链表的操作
|
||||||
|
|
||||||
## 删除节点
|
### 删除节点
|
||||||
|
|
||||||
删除D节点,如图所示:
|
删除D节点,如图所示:
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ head->val = 5;
|
|||||||
|
|
||||||
其他语言例如Java、Python,就有自己的内存回收机制,就不用自己手动释放了。
|
其他语言例如Java、Python,就有自己的内存回收机制,就不用自己手动释放了。
|
||||||
|
|
||||||
## 添加节点
|
### 添加节点
|
||||||
|
|
||||||
如图所示:
|
如图所示:
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ head->val = 5;
|
|||||||
|
|
||||||
但是要注意,要是删除第五个节点,需要从头节点查找到第四个节点通过next指针进行删除操作,查找的时间复杂度是O(n)。
|
但是要注意,要是删除第五个节点,需要从头节点查找到第四个节点通过next指针进行删除操作,查找的时间复杂度是O(n)。
|
||||||
|
|
||||||
# 性能分析
|
## 性能分析
|
||||||
|
|
||||||
再把链表的特性和数组的特性进行一个对比,如图所示:
|
再把链表的特性和数组的特性进行一个对比,如图所示:
|
||||||
|
|
||||||
@ -143,8 +143,7 @@ head->val = 5;
|
|||||||
|
|
||||||
## 其他语言版本
|
## 其他语言版本
|
||||||
|
|
||||||
|
### Java:
|
||||||
Java:
|
|
||||||
|
|
||||||
```java
|
```java
|
||||||
public class ListNode {
|
public class ListNode {
|
||||||
@ -171,7 +170,7 @@ public class ListNode {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
JavaScript:
|
### JavaScript:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
class ListNode {
|
class ListNode {
|
||||||
@ -184,7 +183,7 @@ class ListNode {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
TypeScript:
|
### TypeScript:
|
||||||
|
|
||||||
```typescript
|
```typescript
|
||||||
class ListNode {
|
class ListNode {
|
||||||
@ -197,7 +196,7 @@ class ListNode {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Python:
|
### Python:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
class ListNode:
|
class ListNode:
|
||||||
@ -206,7 +205,7 @@ class ListNode:
|
|||||||
self.next = next
|
self.next = next
|
||||||
```
|
```
|
||||||
|
|
||||||
Go:
|
### Go:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
type ListNode struct {
|
type ListNode struct {
|
||||||
@ -215,7 +214,7 @@ type ListNode struct {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Scala:
|
### Scala:
|
||||||
|
|
||||||
```scala
|
```scala
|
||||||
class ListNode(_x: Int = 0, _next: ListNode = null) {
|
class ListNode(_x: Int = 0, _next: ListNode = null) {
|
||||||
@ -224,7 +223,7 @@ class ListNode(_x: Int = 0, _next: ListNode = null) {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Rust:
|
### Rust:
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
#[derive(PartialEq, Eq, Clone, Debug)]
|
#[derive(PartialEq, Eq, Clone, Debug)]
|
||||||
@ -246,3 +245,4 @@ impl<T> ListNode<T> {
|
|||||||
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
|
||||||
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user