首页 > 解决方案 > 从末端开始向中心遍历列表

问题描述

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

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

我希望它的遍历是这样的:

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

有人可以为此分享解决方案吗?解决方案可以与语言无关——甚至伪代码也可以。

我想到的一种解决方案是创建一个双端队列并从备用端出列元素。但问题是我想多次遍历这个列表,出队将删除这些元素以备将来使用。是否有任何其他解决方案可以避免我每次在以我想要的顺序遍历队列之前制作队列的副本?

标签: logictraversal

解决方案


怎么样:

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]);
}

推荐阅读