24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
解题思路:
- 链表特点:只能一个方向访问每个节点
- 通过建立两个指针改变每个节点的指向
算法流程:
- 申请两个节点,pre和cur,pre最初指向None,cur指向head
- 遍历每个节点,调整每个节点的指向并且pre和cur不断前进
复杂度分析:
- 空间复杂度:O(n)
- 时间复杂度:O(1)
代码实现:
class Solution(object):
def reverseList(self, head):
#申请两个节点,pre和cur,pre最初指向None
pre = None
cur = head
#遍历节点
while cur:
# 记录当前节点的下一个节点
tmp = cur.next
# 然后将当前节点指向pre
cur.next = pre
# pre和cur节点都前进一位
pre = cur
cur = tmp
return pre
本文详细解析了如何通过双指针技术反转链表,并提供了具体的Python代码实现。介绍了链表的特点,即只能从一个方向访问每个节点,以及如何通过改变节点指向来实现链表的反转。
3450

被折叠的 条评论
为什么被折叠?



