剑指offer:反转链表(python)

题目位置LeetCode206

题目

输入一个链表,反转链表后,输出新链表的表头。

方法一:递归

class Solution:
# @param {ListNode} head
# @return {ListNode}
def reverseList(self, head):
  prev = None
  while head:
      curr = head
      head = head.next
      curr.next = prev
      prev = curr
  return prev

方法二:迭代

class Solution:
# @param {ListNode} head
# @return {ListNode}
def reverseList(self,head):
    return self._reverse(head)
def _reverse(self,node,prev=None):
    if not node:
        return prev
     n = node.next
    node.next = prev
    return self._reverse(n,node) 

你可能感兴趣的:(剑指Offer编程题)