设置一个算法,将带头的单链表逆置。要完整的代码
时间: 2024-10-01 14:06:08 浏览: 40
在Python中,你可以通过迭代或者递归的方式来实现单链表的反转。这里是一个使用迭代方法的简单示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None
curr = head
while curr is not None:
# 保存当前节点的下一个节点
next_node = curr.next
# 将当前节点指向prev
curr.next = prev
# 移动prev和curr指针
prev = curr
curr = next_node
return prev # 返回新的头节点
# 使用示例
# 创建一个单链表
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
# 反转链表
reversed_head = reverseList(head)
while reversed_head is not None:
print(reversed_head.val, end=" -> ")
reversed_head = reversed_head.next
print("None") # 结束打印
```
这个算法的主要思路是,每次迭代都把当前节点的next指向前一个节点,直到遍历完整个链表。最后返回新的头节点prev。
阅读全文