返回列表
class Solution:
def reverseBookList(self, head: Optional[ListNode]) -> List[int]:
li = []
while head:
li.append(head.val)
head = head.next
return li[::-1]
头插法,返回链表
class ListNode:
def __init__(self, item):
self.val = item
self.next = None
class LinkedList:
def rear_insert(self, li):
if not li:
return None
head = ListNode(li[0])
tail = head
for val in li[1:]:
node = ListNode(val)
tail.next = node
tail = node
return head
def print(self, head):
current = head
while current:
print(current.val, end="->")
current = current.next
print(None)
li = [2, 6, 8, 9]
l = LinkedList()
res = l.rear_insert(li)
class Solution:
def reverseBookList(self, head):
li = []
while head:
li.append(head.val)
head = head.next
if not li:
return None
pre = ListNode(li[0])
for i in li[1:]:
node = ListNode(i)
node.next = pre
pre = node
return pre
l.print(res)
sl = Solution()
res_ = sl.reverseBookList(res)
l.print(res_)
尾插法,返回链表
class ListNode:
def __init__(self, item):
self.val = item
self.next = None
class LinkedList:
def rear_insert(self, li):
if not li:
return None
head = ListNode(li[0])
tail = head
for val in li[1:]:
node = ListNode(val)
tail.next = node
tail = node
return head
def print(self, head):
current = head
while current:
print(current.val, end="->")
current = current.next
print(None)
li = [2, 6, 8, 9]
l = LinkedList()
res = l.rear_insert(li)
class Solution:
def reverseBookList(self, head):
cur = []
while head:
cur.append(head.val)
head = head.next
li = []
for _ in range(len(cur)):
li.append(cur.pop())
if not li:
return None
pre = ListNode(li[0])
tail = pre
for i in li[1:]:
node = ListNode(i)
tail.next = node
tail = node
return pre
sl = Solution()
l.print(res)
res_ = sl.reverseBookList(res)
l.print(res_)