鉴于一个排序的,双重链接的列表,您将如何找到中位数元素?我能想到的一种方法是遍历列表一次,一旦值重复,我们知道我们遍历了整个链表。在他看来,我们知道有多少元素,所以我们可以去中位数,因为它已经排序了,这将是:
运行时间:O(n) 空间复杂度O(n)也是如此。
有更有效的方法吗?
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以使用2个指针p1和p2来实现此目的。
最初,2个指针将指向List的头部。
现在,遍历List,其中,p1前进2次,p1前进一次,直到p2到达List的末尾。
当p1遍历完整的List时,p2将遍历List的一半,从而指向" Mid"列表。