试写一算法,对单链表实现就地逆置。
时间: 2024-09-27 10:11:46 浏览: 39
对单链表实现就地逆置算法
4星 · 用户满意度95%
对单链表实现就地逆置是指在原链表上操作,不需要额外的空间创建新链表,直接改变节点间的链接关系,使其按相反的顺序排列。这里是一个简单的Python伪代码示例:
```python
# 定义链表节点结构
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None # 初始化前驱节点为空
curr = head # 初始化当前节点为头结点
# 遍历链表,每次迭代将curr的next指向前一个节点
while curr is not None:
temp = curr.next # 保存下一个节点
curr.next = prev # 将curr指向prev
prev = curr # 移动prev到curr
curr = temp # 移动curr到temp
# 返回新的头结点,即原来的尾节点
return prev
```
这个算法遍历整个链表一次,然后通过交换每个节点的`next`指针,实现了链表的反转。
阅读全文