python递归和非递归的实现:
递归实现:
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def reverseList(self, head, prev=None):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head:
return prev
head.next, prev, head = prev, head, head.next
return self.reverseList(head, prev)
非递归实现:
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
prev = None
while head:
head.next, prev, head = prev, head, head.next
return prev
展开