因为用python比较多,python里常用list,所以看到倒序就会想到reverse或者[::-1]
于是诞生了下面的写法,逻辑很简单,就是先把pHead的放出来装到list medium中,medium再倒序,然后再把medium里的值一个一个装进新的ListNode res里,
因为要求输出结果的链表首字母,所以用一个temp来指向res当替死鬼,挨个赋值,最后temp指向的是链表末端,而res依然指向链表首端,注意res.next输出结果,因为第一个0不是我们要的
# -*- coding:utf-8-*-
# classListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
classSolution:
# 返回ListNode
def ReverseList(self, pHead):
# write code here
ifpHead == None or pHead.next == None:
returnpHead
medium = []
while pHead:
medium.append(pHead.val)
pHead = pHead.next
medium.reverse()
res = ListNode(0)
temp = res
fori in medium:
temp.next = ListNode(i)
temp = temp.next
return res.next
其实最后得地方也可以用栈的思想,因为栈就是先进后出, while medium:
temp.next = ListNode(medium.pop())
temp = temp.next
return res.next
temp.next = ListNode(medium.pop())
temp = temp.next
return res.next