方法一:递归
其实在正序递归的时候已经确定了tail元素。回溯的时候,进行两步
1. 让head.next指向head
2. 让head指向none
class Solution(object):
def reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if not head or not head.next:
return head
tail=self.reverseList(head.next)
head.next.next=head
head.next=None
return tail
方法二:循环
每一次都让head.next和head调换
class Solution:
"""
@param head: n
@return: The new head of reversed linked list.
"""
def reverse(self, head):
write your code here
reverse=None
while head!=None:
temp=head.next
head.next=reverse
reverse=head
head=temp
return reverse