怎么输入单链表再使用反转链表函数输出
时间: 2024-09-17 10:01:20 浏览: 47
当你需要输入一个单链表并将其反转后输出,可以按照以下步骤操作:
1. **输入单链表**:
- 首先,你需要创建一个结构体或类表示链表节点,包含一个数据元素和一个指向下一个节点的指针(例如 `struct Node {int data; struct Node* next;}` 或者 `class ListNode`)。
- 然后,你可以通过用户输入、读取文件或者预先给定的数据构造一个链表。如果通过用户输入,可能会提示用户依次输入每个节点的数据,然后链接它们形成一个序列。
2. **创建链表**:
- 初始化一个头结点 (`ListNode head = {0, NULL};`)。
- 对于每一个输入的数据,创建一个新的节点并将它添加到链表的末尾,即 `newNode.next = head.next; head.next = newNode;`
3. **反转链表**:
- 使用迭代法或递归法实现链表的反转。这里是一个简单的迭代方法:
```c++
struct Node* reverseList(struct Node* head) {
struct Node* prev = nullptr;
struct Node* current = head;
struct Node* nextTemp;
while (current != nullptr) {
nextTemp = current->next;
current->next = prev;
prev = current;
current = nextTemp;
}
return prev;
}
```
4. **输出反转后的链表**:
- 将反转后的头结点赋值给原头结点,因为现在`prev`就是新的头结点 (`head = reverseList(head);`)
- 最后,遍历反转后的链表,逐个打印节点的数据。从头结点开始直到`NULL`,如 `while (head != NULL) { printf("%d ", head->data); head = head->next; }`
阅读全文