共计 601 个字符,预计需要花费 2 分钟才能阅读完成。
链表反转的方法有多种,以下是其中两种常见的方法:
- 迭代法:
- 首先定义三个指针:prev、cur 和 next,初始时 prev 为 None,cur 为链表的头结点,next 为 cur 的下一个节点。
- 在每一次迭代中,将 cur 的 next 指针指向 prev,然后依次将 prev、cur 和 next 向后移动一位。
- 当 cur 为空时,说明已经遍历完整个链表,此时 prev 指向反转后的链表的头结点。
- 返回 prev。
以下是迭代法的 Python 实现:
def reverseList(head):
prev = None
cur = head
while cur:
next = cur.next
cur.next = prev
prev = cur
cur = next
return prev
- 递归法:
- 首先判断链表是否为空或只有一个节点,若是,则直接返回该链表。
- 否则,用递归的方式反转除第一个节点以外的子链表,并将原链表的头结点连接到反转后的子链表的尾部。
- 返回反转后的链表的头结点。
以下是递归法的 Python 实现:
def reverseList(head):
if not head or not head.next:
return head
reversed_head = reverseList(head.next)
head.next.next = head
head.next = None
return reversed_head
以上两种方法均能实现链表反转,选择其中一种方法来使用即可。
丸趣 TV 网 – 提供最优质的资源集合!
正文完