动态创建一个链表,依次从键盘上输入正整数,将输入的整数插入到该链表中,直到输入一个负数为止。最后将该链表中的数据在屏幕上输出
时间: 2024-02-28 12:56:08 浏览: 34
好的,我来为您解答这个问题。
这里提供一个 C++ 语言的实现:
```cpp
#include <iostream>
using namespace std;
// 链表节点结构体
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(nullptr) {}
};
// 动态创建链表
ListNode* createList() {
ListNode* head = nullptr;
ListNode* tail = nullptr;
int num;
cin >> num;
while (num >= 0) {
ListNode* newNode = new ListNode(num);
if (!head) {
head = newNode;
tail = newNode;
}
else {
tail->next = newNode;
tail = newNode;
}
cin >> num;
}
return head;
}
// 打印链表
void printList(ListNode* head) {
while (head) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
}
int main() {
ListNode* head = createList();
printList(head);
return 0;
}
```
注释很详细了,这里简单解释一下:
- `ListNode` 是链表节点的结构体,包含一个整数值 `val` 和指向下一个节点的指针 `next`;
- `createList` 函数用于动态创建链表,不断从键盘输入正整数,直到输入负数为止,然后将这些正整数插入到链表中,最后返回链表的头节点 `head`;
- `printList` 函数用于打印链表中的元素,即依次输出链表中每个节点的 `val` 值;
- `main` 函数调用 `createList` 函数创建链表,然后调用 `printList` 函数打印链表。
希望能帮到您!