原題鏈接: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)