读入若干个整数,建立单链表并输出此单链表的长度
时间: 2024-10-22 19:24:52 浏览: 45
当你需要从输入中读取一组整数,并将它们存储在一个单链表中,你可以按照以下步骤操作:
1. 首先,创建一个节点结构体,包含两个字段:值(用于存储整数)和指向下一个节点的指针(通常称为`next`)。
```c++
typedef struct ListNode {
int val; // 节点值
ListNode* next; // 指向下一个节点的指针
} ListNode;
```
2. 然后,定义一个函数来处理输入并构建链表。这个函数可以接受一个整数数组、数组的大小以及一个指向链表头节点的指针(如果链表为空,`head`可以是`nullptr`)。
```c++
ListNode* createLinkedList(int input[], int size, ListNode* head) {
for (int i = 0; i < size; i++) {
ListNode* newNode = new ListNode{input[i]};
if (!head) { // 如果链表为空,设置新的头节点
head = newNode;
} else { // 否则,添加到现有链表的末尾
ListNode* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
}
return head;
}
```
3. 最后,计算链表的长度,即有多少个节点。这可以通过遍历链表并在适当的时候增加计数器来完成。
```c++
int listLength(ListNode* head) {
int length = 0;
ListNode* current = head;
while (current != nullptr) {
length++;
current = current->next;
}
return length;
}
```
4. 主程序中,调用上述函数并将链表长度打印出来。
```c++
int main() {
int input[] = {...}; // 输入的整数数组
int size = sizeof(input) / sizeof(input[0]);
ListNode* head = createLinkedList(input, size, nullptr);
int length = listLength(head);
std::cout << "链表长度: " << length << std::endl;
delete head; // 别忘了释放内存
return 0;
}
```
阅读全文