逆置单链表(递归法)
时间: 2023-10-24 18:05:51 浏览: 143
单链表逆置
逆置单链表的递归方法可以通过递归函数来实现。下面是一个示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
# 递归终止条件
if not head or not head.next:
return head
# 递归调用反转剩余部分
new_head = reverseList(head.next)
# 将当前节点的下一个节点的下一个节点指向当前节点,实现反转
head.next.next = head
head.next = None
return new_head
```
这段代码定义了一个 `ListNode` 类作为单链表的节点,其中 `val` 用于存储节点的值,`next` 用于指向下一个节点。`reverseList` 函数接受一个单链表的头节点作为参数,返回逆置后的新头节点。
在递归函数中,首先判断当前节点是否为空或者下一个节点为空,如果是,则直接返回当前节点。然后使用递归调用反转剩余部分的链表,并将返回的新头节点保存为 `new_head`。接着将当前节点的下一个节点的下一个节点指向当前节点,实现反转。最后将当前节点的 `next` 设置为 `None`,以防止形成环。
通过调用 `reverseList` 函数,可以实现对单链表的逆置。
阅读全文