单链表实现翻转链表的功能
时间: 2023-07-12 14:33:24 浏览: 61
单链表实现翻转链表的功能可以通过以下步骤实现:
1. 定义三个指针:当前结点指针 `current`、前一个结点指针 `prev` 和后一个结点指针 `next`;
2. 将当前结点的 `next` 指针指向前一个结点,即将链表反转;
3. 将前一个结点指针 `prev` 指向当前结点,后一个结点指针 `next` 指向当前结点的下一个结点;
4. 将当前结点指针 `current` 指向后一个结点,继续反转直到结尾。
下面是一个 C++ 实现的例子:
```c++
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* reverseList(ListNode* head) {
ListNode* current = head;
ListNode* prev = NULL;
ListNode* next = NULL;
while (current != NULL) {
next = current->next;
current->next = prev;
prev = current;
current = next;
}
return prev;
}
```
在这个例子中,我们首先定义了三个指针 `current`、`prev` 和 `next`,分别表示当前结点、前一个结点和后一个结点。然后在循环中,我们将当前结点的 `next` 指针指向前一个结点,将前一个结点指针 `prev` 指向当前结点,后一个结点指针 `next` 指向当前结点的下一个结点。最后将当前结点指针 `current` 指向后一个结点,继续反转直到结尾。