以单链表作为存储结构,实现线性表的就地逆置。
时间: 2023-04-25 13:02:46 浏览: 198
对单链表实现就地逆置算法
4星 · 用户满意度95%
可以使用三个指针分别指向当前节点、前驱节点和后继节点,依次将当前节点的指针指向前驱节点,然后将三个指针向后移动一个节点,直到当前节点为空。最后将头节点指向原链表的尾节点即可。
具体实现代码如下:
```
void reverseList(ListNode* head) {
if (head == nullptr || head->next == nullptr) {
return;
}
ListNode* pre = nullptr;
ListNode* cur = head;
ListNode* nxt = head->next;
while (cur != nullptr) {
cur->next = pre;
pre = cur;
cur = nxt;
if (nxt != nullptr) {
nxt = nxt->next;
}
}
head->next = pre;
}
```
阅读全文