题目
代码
执行用时:40 ms, 在所有 Python3 提交中击败了54.80% 的用户
内存消耗:16.1 MB, 在所有 Python3 提交中击败了45.45% 的用户
通过测试用例:28 / 28
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
ans=None
pre=head
while head:
if pre==head:
ans=head
head=head.next
pre.next=None
else:
next=head.next
head.next=pre
pre=head
ans=head
head=next
return ans
【方法2】递归
执行用时:40 ms, 在所有 Python3 提交中击败了54.80% 的用户
内存消耗:20.8 MB, 在所有 Python3 提交中击败了5.11% 的用户
通过测试用例:28 / 28
class Solution:
def visit(self,root):
if not root or not root.next:
return root
newRoot=self.visit(root.next)
root.next.next=root
root.next=None
return newRoot
def reverseList(self, head: ListNode) -> ListNode:
return self.visit(head)

本文介绍了两种Python实现双向链表反转的方法,包括迭代和递归。这两种方法都具有40ms的执行时间和约17MB的内存消耗,通过了所有测试用例。迭代法通过设置两个指针逐步反转链表,而递归法则通过递归调用来实现链表节点的反转。

被折叠的 条评论
为什么被折叠?



