问题提出:反转一个单链表

解决思路:最先想到的是使用栈来存储链表的第一遍遍历的值。再重新遍历链表,遍历的同时弹出栈的元素(弹出的顺序刚好是链表节点值的倒序),为当前节点赋值当前弹出的值。python可以直接使用list结构存储遍历值,读取的时候倒序读取list元素,就相当于栈的原理。

代码如下( ̄▽ ̄):

# Definition for singly-linked list.# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass 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

时间与空间消耗:

题目来源:https://leetcode-cn.com/probl...