课后作业
chao_smile 2024/3/28
# 第十七课
# 1. 给定一个单链表,实现一个函数 int findFirst(Node* head, int target)
,该函数返回链表中第一次出现目标值 target
的节点的位置。如果目标值不存在于链表中,则返回 -1
链表节点定义如下:
struct Node {
int data;
Node* next;
};
链表值获取方式如下:
for (int i = 1; i <= 5; ++i) {
// 每次 data 赋值 i * 10
}
目标值 target
为 30
示例输出:
目标值 30 第一次出现的位置是 3
- ✅
- 历史解析
- 整体题解思路正确,本题主要考查链表查找操作,没有问题💯
# 2. 给定一个单链表,实现一个函数 void deleteNode(Node* head, int position)
,该函数删除链表中指定位置的节点,如果位置无效,则不进行任何操作,随后打印删除后的链表
链表节点定义如下:
struct Node {
int data;
Node* next;
};
链表值获取方式如下:
for (int i = 1; i <= 5; ++i) {
// 每次 data 赋值 i * 10
}
目标值 position
为 3
示例输出:
10 20 40 50
- ✅
- 历史解析
- 整体题解思路正确,本题主要考查链表查找删除操作,没有问题💯
# 3. 给定一个单链表,实现一个函数 void insertNode(Node* head, int position, int value)
,该函数在链表中指定位置插入一个值为 value
的节点,如果位置无效,则不进行任何操作,随后打印插入后的链表
链表节点定义如下:
struct Node {
int data;
Node* next;
};
链表值获取方式如下:
for (int i = 1; i <= 5; ++i) {
// 每次 data 赋值 i * 10
}
目标值 position
为 3
, value
为 25
示例输出:
10 20 25 30 40 50
- ✅
- 历史解析
- 整体题解思路正确,本题主要考查链表查找插入操作,没有问题💯