如何用递归实现链表反转
时间: 2024-05-16 21:16:22 浏览: 68
Python实现链表反转的方法分析【迭代法与递归法】
链表反转可以使用递归来实现,具体步骤如下:
1. 如果链表为空或只有一个节点,则直接返回该链表。
2. 对于当前链表,先用递归函数反转除第一个节点以外的其他节点,然后将第一个节点添加到反转后链表的末尾。
3. 返回反转后的链表。
下面是示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head: ListNode) -> ListNode:
if not head or not head.next:
return head
new_head = reverseList(head.next)
head.next.next = head
head.next = None
return new_head
```
在上述代码中,`head` 是当前链表的头节点,如果链表为空或只有一个节点,则直接返回该链表。否则,用递归函数反转除第一个节点以外的其他节点,并将第一个节点添加到反转后链表的末尾,最后返回反转后的链表。其中,`new_head` 是反转后的链表的头节点。
阅读全文