c++带头结点单链表尾插法
时间: 2024-04-27 08:16:25 浏览: 167
单链表尾插法(C++源代码)
4星 · 用户满意度95%
C++带头结点的单链表尾插法是一种常见的链表操作方法,它可以在链表的末尾插入新的节点。下面是一个简单的示例代码:
```cpp
#include <iostream>
// 定义链表节点结构体
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
// 尾插法构建链表
ListNode* createList() {
ListNode* head = new ListNode(0); // 创建头结点
ListNode* tail = head; // 尾指针指向头结点
int val;
std::cout << "请输入链表节点的值(输入-1结束):" << std::endl;
while (std::cin >> val && val != -1) {
ListNode* newNode = new ListNode(val); // 创建新节点
tail->next = newNode; // 将新节点连接到尾部
tail = newNode; // 更新尾指针
}
return head;
}
// 打印链表
void printList(ListNode* head) {
ListNode* cur = head->next; // 头结点的下一个节点开始遍历
while (cur != nullptr) {
std::cout << cur->val << " ";
cur = cur->next;
}
std::cout << std::endl;
}
int main() {
ListNode* head = createList(); // 构建链表
printList(head); // 打印链表
return 0;
}
```
以上代码中,我们首先定义了一个链表节点结构体 `ListNode`,包含一个整数值 `val` 和一个指向下一个节点的指针 `next`。然后通过 `createList` 函数使用尾插法构建链表,用户输入节点的值,直到输入 -1 结束。最后通过 `printList` 函数打印链表的所有节点值。
阅读全文