实现单链表的逆序存放源代码
时间: 2024-10-14 11:09:54 浏览: 23
C语言实现单链表逆序与逆序输出实例
当然可以。这里是一个简单的Python示例,用于反转一个单链表:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None # 创建一个头节点的前驱指针
current = head # 当前节点
while current is not None:
temp = current.next # 保存当前节点的下一个节点
current.next = prev # 将当前节点指向它的前一个节点
prev = current # 更新前驱节点为当前节点
current = temp # 移动到下一个节点
return prev # 返回新的头节点,即原列表的尾部
# 使用示例
# 初始化链表: 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
reversed_head = reverseList(head)
```
在这个代码中,我们通过三个变量prev、current和temp来进行操作:prev保持对前一个节点的引用,current遍历整个链表,而temp暂存current的下一个节点。每一步都将current的next指向前一个节点,然后移动到下一个位置。
阅读全文