问题提出:反转一个单链表
解决思路:最先想到的是使用栈来存储链表的第一遍遍历的值。再重新遍历链表,遍历的同时弹出栈的元素(弹出的顺序刚好是链表节点值的倒序),为当前节点赋值当前弹出的值。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...