编写一个将整条链表翻转过来的小程序
时间: 2024-10-06 18:04:20 浏览: 44
链表反转是一个常见的数据结构操作,通常涉及到迭代或递归的方式。下面是一个简单的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:
temp = curr.next
curr.next = prev
prev = curr
curr = 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)
# 翻转链表后: 5 -> 4 -> 3 -> 2 -> 1
reversed_head = reverse_list(head)
```
这个函数`reverse_list`接受链表的头节点作为输入,通过三个指针prev、curr和temp,一步步地交换当前节点的next指针指向prev,然后移动到下一个节点,直到遍历完整个链表。最后返回新的头节点prev。
阅读全文