在给定单链表的Python中,将其分成两半(中位数左右)并反转每一半

问题描述 投票:0回答:1

我可以扭转它,但对如何访问链表的中位数感到困惑

def reverseLinkedList(head):

    current =  head
    previous = None
    nextNode = None

    while current:
        nextNode = current.nextNode
        current.nextNode = previous

        previous = current
        current = nextNode

    return previous

有人可以帮忙解决方案吗?

python reverse
1个回答
0
投票

链接列表不支持随机访问。因此,除非您提前知道链接列表或中间节点中的元素数量是由于代码中的节点结构/定义而标记的,否则您将无法在没有迭代的情况下获取它。

如果你知道链表中的元素数量,你可以只迭代它们中的一半,否则你将不得不迭代完整列表,跟踪计数,然后再次迭代计数除以2。

© www.soinside.com 2019 - 2024. All rights reserved.