输入若干个整数建立单链表
时间: 2023-05-26 10:01:41 浏览: 76
建立一个单链表
A:
可以按以下步骤建立单链表:
1. 定义节点结构体
```
struct ListNode {
int val;
ListNode* next;
};
```
2. 初始化头节点和尾节点
```
ListNode* head = new ListNode {-1, nullptr};
ListNode* tail = head;
```
其中,头节点的值可以设置为任意值,因为它不是我们要求的答案。而当前节点初始化为头节点,下一个节点为空指针。
3. 循环读取整数并插入尾节点
```
int num;
while (cin >> num) {
tail->next = new ListNode {num, nullptr};
tail = tail->next;
}
```
每读入一个整数,就创建一个新节点,并将尾节点的 next 指针指向该新节点。然后移动尾节点到新节点,以便在下一次循环中继续插入新节点。
4. 返回单链表的头节点
```
return head->next;
```
由于头节点不是真正的数据节点,因此返回头节点的 next 指针,即第一个数据节点作为单链表的头节点。
完整代码如下:
```
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode* next;
};
ListNode* createLinkedList() {
ListNode* head = new ListNode {-1, nullptr};
ListNode* tail = head;
int num;
while (cin >> num) {
tail->next = new ListNode {num, nullptr};
tail = tail->next;
}
return head->next;
}
int main() {
ListNode* head = createLinkedList();
while (head) {
cout << head->val << " ";
head = head->next;
}
return 0;
}
```
阅读全文