2.4 反转单向和双向链表

题目:分别实现反转单向链表和反转双向链表的函数

要求:如果链表长度为N,时间复杂度要求为O(N),额外空间复杂度要求为O(1)

My:

Reference:

#反转单向链表
def reverse_linklist(L):
    pre = None
    next = None
    p = L.head.next_item
    while p:
        next = p.next_item
        p.next_item = pre
        pre = p
        p = next
    L.head.next_item = pre

#反转双向链表
def reverse(L):
    pre = None
    next = None
    p = L.head.next_item
    while p:
        next = p.next_item
        p.next_item = pre
        p.prior_item = next
        pre = p
        p = next
    L.head.next_item = pre
    pre.prior_item = L.head

猜你喜欢

转载自www.cnblogs.com/latup/p/9862462.html
今日推荐