原题链接:Reverse Linked List
题目内容:
Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL
Follow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?
题目翻译:
使用两种方法逆置链表,递归和迭代
Python 迭代
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
res = None
while head:
temp = head
head = head.next
temp.next = res
res = curr
return res
Python 递归
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
return self._reverse(head)
def _reverse(self, node, last=None):
if not node:
return last
n = node.next
node.next = last
return self._reverse(n, node)