已知一个单链表如图1所示,编写一个函数将该单链表逆置。
时间: 2024-09-30 20:06:07 浏览: 42
写一个算法将一单链表逆置。要求操作在原链表上进行。
在Python中,可以使用迭代的方式来逆置一个单链表。这里是一个基本的步骤:
首先,我们需要定义链表节点的结构,例如:
```python
# 定义链表节点
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
然后,我们可以创建一个函数来逆置链表:
```python
def reverse_list(head):
prev = None # 初始化前驱节点为None
current = head # 初始化当前节点为头节点
while current is not None:
# 保存当前节点的下一个节点
next_temp = current.next
# 将当前节点指向它的前驱节点
current.next = prev
# 移动前驱和当前节点向前
prev = current
current = next_temp
# 返回新链表的头节点,即原链表的尾节点
return prev
```
这个函数通过三个指针prev、current和next_temp,依次完成对每个节点的反转操作,最终prev成为新的头节点。
注意:这个函数假设传入的是非空链表,并且只支持单向链表。
阅读全文