单链表怎么实现逆序
时间: 2024-10-11 10:09:08 浏览: 18
java实现单链表之逆序
单链表反转是一种常见的链表操作,通常涉及到三个指针:当前节点、前一个节点和下一个节点。以下是递归和迭代两种常见方法来实现单链表的逆序:
**1. 递归方法:**
```python
def reverseListRecursively(node):
if node is None or node.next is None:
return node
prev = reverseListRecursively(node.next)
node.next.next = node
node.next = None
return prev
```
在这个递归函数中,我们首先检查是否是最简单的情况(头节点或只有一个节点),然后逐步将每个节点的next指向它的前一个节点,直到遍历完整个链表。
**2. 迭代方法:**
```python
def reverseListIteratively(head):
prev = None
current = head
while current is not None:
next_temp = current.next # 保存当前节点的下一个节点
current.next = prev # 将当前节点指向prev
prev = current # 更新prev
current = next_temp # 移动到下一个节点
return prev # 返回新的头节点,原头现在是最后一个元素
```
这个迭代过程通过临时变量保存了下一个节点,然后更新当前节点的next指向前一个节点,最后移动指针到下一个节点继续这个过程,直到链表结束。
阅读全文