问题提出:反转一个单链表
解决思路:最先想到的是使用栈来存储链表的第一遍遍历的值。再重新遍历链表,遍历的同时弹出栈的元素(弹出的顺序刚好是链表节点值的倒序),为当前节点赋值当前弹出的值。python可以直接使用list结构存储遍历值,读取的时候倒序读取list元素,就相当于栈的原理。
代码如下( ̄▽ ̄):
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def reverseList(self, head: ListNode) -> ListNode:
l = []
temp = head
while temp!=None:
l.append(temp.val)
temp = temp.next
i = len(l)-1
temp2 = head
while i>=0:
temp2.val = l[i]
i-=1
temp2 = temp2.next
return head
时间与空间消耗:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。