在单链表中插入一个节点
时间: 2024-02-22 15:00:38 浏览: 70
好的,我来回答你的问题。向单链表中插入一个节点,需要进行以下几个步骤:
1. 创建一个新节点,设置新节点的数据域为要插入的数据,设置新节点的指针域为 NULL。
2. 找到要插入的位置,即找到插入节点的前一个节点,可以从链表的头节点开始遍历,直到找到插入位置的前一个节点。
3. 将新节点的指针域指向插入位置的后一个节点。
4. 将插入节点的前一个节点的指针域指向新节点。
下面是一个示例代码:
```c++
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void insertNode(ListNode* &head, int val, int pos) {
ListNode* newNode = new ListNode(val);
if (pos == 0) {
newNode->next = head;
head = newNode;
return;
}
ListNode* pre = head;
for (int i = 0; i < pos - 1; i++) {
pre = pre->next;
}
newNode->next = pre->next;
pre->next = newNode;
}
```
在这个例子中,我们创建了一个 `ListNode` 结构体,包含一个数据域和一个指针域。然后定义了一个 `insertNode` 函数,第一个参数是链表的头节点指针的引用,第二个参数是要插入的数据,第三个参数是要插入的位置。在函数中,我们首先创建一个新节点,并判断是否插入在链表头,然后遍历链表找到插入位置的前一个节点,最后插入新节点。
阅读全文