在python数据结构中编写代码单链表的逆置
时间: 2024-09-20 17:09:37 浏览: 49
数据结构C语言版之单链表的逆置.cpp
在Python中,我们可以使用迭代或者递归的方式来反转单链表。这里给出一种常见的迭代方法:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list(head):
prev = None
curr = head
while curr is not None:
# 保存当前节点的下一个节点
next_temp = curr.next
# 将当前节点的next指向前一个节点
curr.next = prev
# 更新前驱和当前节点
prev = curr
curr = next_temp
return prev # 返回新的头节点,即原链表的尾节点
# 使用示例
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4))))
reversed_head = reverse_list(head)
```
这段代码首先定义了一个`ListNode`类表示链表节点,然后`reverse_list`函数接收链表的头节点作为输入,通过三个指针prev、curr和next_temp,逐个改变节点的next指向,最终返回新的头节点。
阅读全文