小编Oct*_*171的帖子

你能用 O(1) 的运行时间翻转堆栈吗?

我正在构建一个使用双向链表构建堆栈的程序。我需要以 O(1) 的运行时间翻转堆栈或反转堆栈的顺序。例如:

1 -> 2 -> 3 -> 4

变成

4 -> 3 -> 2 -> 1

我能想到的最快方法是使用 O(N) 作为运行时。由于被要求使用 O(1) 的运行时,所有循环都是不可能的,因为它们都将不可避免地取决于堆栈中的节点数。

有人可以推荐一种合理的方法来解决这个问题吗?

c big-o stack

3
推荐指数
1
解决办法
115
查看次数

标签 统计

big-o ×1

c ×1

stack ×1