示例数据结构:编写函数实现单链表逆置代码
时间: 2024-09-20 13:14:32 浏览: 40
数据结构C语言版之单链表的逆置.cpp
在编程中,反转单链表是一个常见的操作,可以使用迭代或递归的方式实现。这里提供一个使用迭代法的Python示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None # 初始化前驱节点为None
current = head # 当前节点初始化为头节点
while current is not None: # 当当前节点非空
next_temp = current.next # 记录下一个节点
current.next = prev # 将当前节点的next指向前驱节点
prev = current # 移动前驱节点到当前位置
current = next_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)
# 打印逆置后的链表:5 -> 4 -> 3 -> 2 -> 1
while reversed_head:
print(reversed_head.val, end=" -> ")
reversed_head = reversed_head.next
```
在这个例子中,`reverseList`函数接收一个链表的头节点作为输入,通过循环和临时变量交换节点,实现了链表的逆置。
阅读全文