单链表逆转:迭代和递归两种方法详解
单链表逆转可以采用迭代或递归两种方法实现。
- 迭代法
迭代法的思路是从头到尾遍历链表,将每个节点的指向反转。
具体实现方法如下:
def reverseList(head):
prev = None
curr = head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
return prev
- 递归法
递归法的思路是从尾到头递归处理链表,将每个节点的指向反转。
具体实现方法如下:
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
以上两种方法都可以实现单链表的逆转,具体使用哪种方法取决于具体的应用场景。
原文地址: https://www.cveoy.top/t/topic/mTsl 著作权归作者所有。请勿转载和采集!