帮我生成一耳光单链表倒置的代码,用数据结构的知识
时间: 2024-09-20 10:13:49 浏览: 34
初中语文文学讨论美文荐读“一记耳光”的分量
当需要反转单链表时,一种常见的做法是使用迭代或递归的方式。这里我给你提供一个使用迭代的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_temp = curr.next
# 将当前节点指向prev
curr.next = prev
# 移动指针向前
prev = curr
curr = 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)
```
这个代码首先创建了一个`ListNode`类,然后定义了`reverseList`函数,它接受链表的头节点作为输入,通过三个指针`prev`、`curr`和临时存储`next_temp`,依次将`curr`节点的`next`指向前一个节点,直到遍历完整个链表。最后返回新的头节点`prev`。
阅读全文