用c++实现链表的尾插法
时间: 2024-10-24 15:00:27 浏览: 12
在C++中,链表的尾插法是指在链表的末尾添加一个新的节点。以下是使用结构体和指针实现单向链表的基本步骤:
```cpp
// 首先定义链表节点结构体
struct ListNode {
int val; // 节点值
ListNode* next; // 指向下一个节点的指针
ListNode(int x) : val(x), next(nullptr) {} // 构造函数初始化next为nullptr
};
// 尾插法的具体实现
void insertAtTail(ListNode*& head, int val) {
if (head == nullptr) { // 如果链表为空,则直接创建新节点作为头结点
head = new ListNode(val);
} else {
ListNode* current = head;
while (current->next != nullptr) { // 遍历到链表的最后一个节点
current = current->next;
}
current->next = new ListNode(val); // 在当前节点之后插入新节点
}
}
```
在这个实现中,`insertAtTail`函数接受链表的头指针`head`和要插入的新值`val`作为参数。如果链表为空,它会创建一个新节点并将其设置为头节点;否则,遍历链表直到找到最后一个节点,然后在其后插入新节点。
阅读全文