实现单链表逆置的函数
时间: 2024-09-14 13:09:45 浏览: 71
单链表逆置-c++-文档输出
单链表逆置是指将链表中所有节点的链接方向逆转,即原链表中的后继节点变前驱节点,前驱节点变后继节点。实现单链表逆置的方法有很多种,下面是一个简单的递归方法的实现示例:
```python
class ListNode:
def __init__(self, value=0, next=None):
self.val = value
self.next = next
def reverse_list(head):
# 递归终止条件是当前节点为空或者后继节点为空
if head is None or head.next is None:
return head
# 递归调用,将当前节点的下一个节点逆置,并返回新的头节点
new_head = reverse_list(head.next)
# 逆转当前节点与下一个节点的关系
head.next.next = head
head.next = None
return new_head
```
在这个实现中,我们首先定义了一个链表节点类`ListNode`,然后定义了一个函数`reverse_list`。该函数通过递归的方式逆置链表:
1. 如果当前节点为空或者已经到达链表尾部(下一个节点为空),那么递归结束,返回当前节点作为新的头节点。
2. 对当前节点的下一个节点继续调用`reverse_list`函数进行逆置。
3. 逆置完成后,将当前节点与下一个节点的关系逆转,即将当前节点的下一个节点的`next`指针指向前一个节点(即当前节点),并断开当前节点与原下一个节点的连接(将`current.next`设置为`None`)。
4. 返回新的头节点,即原来链表尾部的节点。
阅读全文