在遍历数组的for循环中,我可以遍历循环变量增量为2的数组的每个第二个索引。但是如何使用任何循环来访问循环链表中的每个第二个节点?我假设我可以从任何方向遍历每个节点,但我想要做的是,如果a-b-c-d-e-a是一个循环链表,我想像a-c-e-b-d-a-c-那样遍历......就像这样......
答案 0 :(得分:1)
不确定你想要在这里实现什么,但无论如何,你可以通过使用节点的下一个下一个指针(和/或前一个指针,如果它是双重链接)简单地移动到每个第二个节点。
您可以像这样循环执行此操作;
loop (condition) {
traveler = traveler->next->next;
// Do something with node
...
}
这里,您的traveler
节点只是遍历列表的虚拟节点。
由于您的链接列表是循环的,因此您的condition
必须是这样的,您需要找到一种终止循环的方法,而不是检测下一个节点(traveler
)是否为NULL