版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/85990783
206. Reverse Linked List (easy)
Reverse a singly linked list.
Example:
Input: 1->2->3->4->5->NULL Output: 5->4->3->2->1->NULLFollow up:
A linked list can be reversed either iteratively or recursively. Could you implement both?
太久没写链表了 而且还是用python,先随意写个,感觉哪里 怪怪的,,当然 新建了一个单链表其实不太符合题意,后面写iterative和recursive的解法
# 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
"""
valList = []
if not head:return []
while(head):
valList.append(head.val)
head = head.next
valList.reverse()
revhead = ListNode(valList[0])
for i in range(1,len(valList)):
node = ListNode(valList[i])
if i == 1:revhead.next = node
else: prenode.next = node
prenode = node
return revhead
1 iterative
# 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
"""
cur = head
pre = None
while(cur != None):
nxt = cur.next
cur.next = pre
pre = cur
cur = nxt
return pre