遍历从端点到中心的列表

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

假设我有一个这样的列表:

[4, 5, 7, 2, 3, 1, 9]

我希望遍历如下:

4, 9, 5, 1, 7, 3, 2

有人可以为此分享解决方案吗?解决方案可以是与语言无关的-即使伪代码也可以。

我想到的一个解决方案是制作一个双头队列,并从备用头出队。但是问题是我想多次遍历此列表,出队将删除这些元素以备将来使用。还有其他解决方案可以避免我在按所需顺序遍历之前每次都复制队列吗?

logic traversal
1个回答
1
投票

怎么样:

i = 0;
j = arr.size() - 1;

while(i < j){
    print(arr[i++]);
    print(arr[j--]);
}
// center still needs to be printed
if(i == j){
    print(arr[i]);
}
© www.soinside.com 2019 - 2024. All rights reserved.