链表的输入
时间: 2023-07-10 14:19:22 浏览: 35
链表是一种常见的数据结构,其插入删除操作比数组方便,但是访问元素需要遍历,效率比较低。在 C++ 中,链表可以使用结构体和指针来实现。
以下是一种常见的链表结构体的定义:
```c++
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
```
其中,val 表示链表节点的值,next 表示指向下一个节点的指针,为 NULL 表示链表末尾。
链表的输入可以通过循环输入每一个节点的值和 next 指针来实现。下面是一个输入带有 n 个节点的链表的示例代码:
```c++
int n;
cin >> n; // 输入链表节点个数
ListNode *head = nullptr, *cur = nullptr;
for (int i = 0; i < n; i++) {
int x;
cin >> x; // 输入节点值
ListNode *node = new ListNode(x); // 创建新节点
if (head == nullptr) { // 处理头节点
head = node;
cur = node;
} else { // 处理非头节点
cur->next = node;
cur = node;
}
}
```
在上述代码中,先输入链表节点的个数 n,然后循环输入每一个节点的值 x,创建新节点并连接到链表的末尾。需要注意的是,头节点需要特殊处理,cur 指针始终指向链表的末尾。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)