在PTA网站上。那道在单链表指定位置插入元素的题怎么做
时间: 2024-11-06 16:20:15 浏览: 22
pta题库答案c语言.zip
在PTA(Problem Tagging Area,中国大学生在线评测平台)上,如果遇到题目要求你在单链表的特定位置插入新元素,一般会涉及链表操作的基础知识,包括链表节点的创建、指针处理以及对链表结构的理解。
以下是步骤概述:
1. **创建新节点**:首先,你需要创建一个新的链表节点,这个节点将包含你要插入的数据。
```python
struct ListNode {
int val;
struct ListNode *next;
};
```
2. **找到插入位置**:遍历当前链表,从头节点开始,直到找到需要插入位置的前一个节点。这通常通过设置两个指针,一个快指针每次移动两步(代表下一个插入点),一个慢指针每次移动一步,当快指针到达目标位置时,慢指针所在的节点就是前一个节点。
3. **插入新节点**:在找到前一个节点后,更新它的`next`指向新创建的节点,然后将新节点的`next`指向原本的下一个节点,完成插入操作。
```cpp
ListNode* insertNode(ListNode* head, int val, int pos) {
ListNode* newNode = new ListNode{val}; // 创建新节点
if (pos == 0) { // 如果要在头部插入
newNode->next = head;
return newNode;
}
ListNode* prev = head;
for (int i = 1; i < pos; ++i) {
if (!prev || !prev->next) { // 避免越界
break;
}
prev = prev->next;
}
newNode->next = prev->next; // 更新前一个节点的next
prev->next = newNode; // 将新节点链接到正确位置
return head;
}
```
阅读全文