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