单链表逆置的概念原理(代码)
时间: 2024-09-25 19:03:45 浏览: 44
单链表逆置是指将一个已排序的单向链表的所有节点顺序反转,即原来的头节点变成最后一个节点,而原来的尾节点变成新的头节点。这通常通过迭代或递归的方式实现。以下是使用迭代的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 # 返回新头节点
```
这段代码首先创建两个指针`prev`和`curr`,初始时`prev`为None,`curr`为链表的头节点。然后,在循环中,每次迭代都将`curr`的`next`指向前一个节点`prev`,接着移动`prev`和`curr`分别到下一个位置。当`curr`变为None(遍历结束),`prev`就是新的头节点。
阅读全文