This commit is contained in:
krahets
2023-08-20 13:37:08 +08:00
parent 2e27ad1680
commit 44a8568356
32 changed files with 140 additions and 130 deletions
+5 -5
View File
@@ -190,7 +190,7 @@ comments: true
## 4.2.1   链表常用操作
### 初始化链表
### 1.   初始化链表
建立链表分为两步,第一步是初始化各个节点对象,第二步是构建引用指向关系。初始化完成后,我们就可以从链表的头节点出发,通过引用指向 `next` 依次访问所有节点。
@@ -401,7 +401,7 @@ comments: true
数组整体是一个变量,比如数组 `nums` 包含元素 `nums[0]` , `nums[1]` 等,而链表是由多个独立的节点对象组成的。**我们通常将头节点当作链表的代称**,比如以上代码中的链表可被记做链表 `n0` 。
### 插入节点
### 2.   插入节点
**在链表中插入节点非常容易**。假设我们想在相邻的两个节点 `n0` , `n1` 之间插入一个新节点 `P` ,则只需要改变两个节点引用(指针)即可,时间复杂度为 $O(1)$ 。
@@ -543,7 +543,7 @@ comments: true
}
```
### 删除节点
### 3.   删除节点
在链表中删除节点也非常简便,只需改变一个节点的引用(指针)即可。
@@ -728,7 +728,7 @@ comments: true
}
```
### 访问节点
### 4.   访问节点
**在链表访问节点的效率较低**。如上节所述,我们可以在 $O(1)$ 时间下访问数组中的任意元素。链表则不然,程序需要从头节点出发,逐个向后遍历,直至找到目标节点。也就是说,访问链表的第 $i$ 个节点需要循环 $i - 1$ 轮,时间复杂度为 $O(n)$ 。
@@ -901,7 +901,7 @@ comments: true
}
```
### 查找节点
### 5.   查找节点
遍历链表,查找链表内值为 `target` 的节点,输出节点在链表中的索引。此过程也属于「线性查找」。