对单链表中的元素进行逆置操作,即把第一个元素放置在最后一位,把第二个元素放置在倒数第二位,……并写出伪代码
时间: 2024-10-10 20:13:06 浏览: 22
对单链表进行逆置操作可以通过迭代或者递归的方式来实现。这里给出一个简单的迭代伪代码示例:
```pseudo
// 定义链表节点结构
struct ListNode {
int val;
ListNode *next;
}
// 函数定义
ListNode* reverseList(ListNode* head) {
// 初始化三个指针:prev指向当前节点,current指向下一个节点,初始都为head
ListNode* prev = nullptr;
ListNode* current = head;
// 当current非空时循环
while (current != nullptr) {
// 保存当前节点的下一个节点
ListNode* nextTemp = current->next;
// 将当前节点的next指向前一个节点,实现翻转
current->next = prev;
// 更新前一个节点和当前节点
prev = current;
current = nextTemp;
}
// 返回新的头节点,即原来的尾节点
return prev;
}
```
在这个伪代码中,我们遍历整个链表,每次迭代都将当前节点的`next`指向前一个节点,然后移动到下一个节点,直到链表结束。最后返回`prev`作为新的头节点,它指向了原链表的最后一个节点。
阅读全文