C++中如何在链表中添加新节点?
时间: 2024-09-20 14:03:35 浏览: 79
在C++中,向链表中添加新节点通常涉及以下几个步骤:
对于单向链表:
1. 定义新节点:首先,你需要创建一个新的`Node`实例,并将数据放入其中。
2. 初始化指针:如果链表为空,将新节点设为头节点;如果链表非空,则找到最后一个节点并将其`next`指向新节点。
```cpp
Node* newNode = new Node(data);
if (head == nullptr) { // 如果链表为空
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
```
对于双向链表:
1. 类似地,创建新节点并将数据放进去。
2. 需要更新新节点的`prev`和`next`指针,如果链表为空,将`prev`和`next`都设置为它自己;如果链表非空,先找到最后一个节点并更新其`next`和新节点的`prev`,然后将新节点的`next`指向当前节点。
```cpp
Node* newNode = new Node(data);
newNode->prev = nullptr;
if (head == nullptr) {
newNode->next = newNode;
head = newNode;
} else {
Node* last = head;
while (last->next != nullptr) {
last = last->next;
}
last->next = newNode;
newNode->prev = last;
}
```
记得在操作完之后,别忘了释放新节点的内存,除非你使用智能指针。
阅读全文