用C++写一下:用尾插法构造单链表,新结点插入在单链表尾结点之后
时间: 2024-10-19 10:08:35 浏览: 41
在C++中,你可以使用`struct`定义链表节点,并通过一个指向`next`的指针连接相邻节点。以下是使用尾插法(也称为“链接到头”或append操作)创建单链表并插入新节点的示例:
```cpp
#include <iostream>
// 定义链表节点结构
struct ListNode {
int data; // 节点存储的数据
ListNode* next; // 指向下一个节点的指针
// 构造函数,用于初始化节点
ListNode(int value) : data(value), next(nullptr) {}
};
// 尾插法添加新节点
void insertAtTail(ListNode*& head, int value) {
// 如果链表为空,直接创建新节点作为头节点
if (head == nullptr) {
head = new ListNode(value);
return;
}
// 遍历到链表尾部,然后插入新节点
ListNode* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = new ListNode(value); // 插入新节点
}
int main() {
// 创建空链表
ListNode* list = nullptr;
// 添加元素到尾部
insertAtTail(list, 1); // 链表现在是 1 -> null
insertAtTail(list, 2); // 链表现在是 1 -> 2 -> null
insertAtTail(list, 3); // 链表现在是 1 -> 2 -> 3 -> null
// 打印链表
ListNode* temp = list;
while (temp != nullptr) {
std::cout << temp->data << " ";
temp = temp->next;
}
std::cout << "\n";
return 0;
}
```
阅读全文