正如标题所示,我必须遍历一个双向链表。唯一的问题是我必须遍历“n”个元素。
例如,如果给定一个 1 3 2 2 1 1 的列表,我必须根据我所在的值向左或向右迭代:
1 -> 3 -> 1 -> 1。我可以移动与列表中的值相同的值。由于我从 1 开始,我可以向左或向右移动 1 个元素(只能向右移动)。当我降落在 3 上时,我可以向左或向右移动 3 个元素等。
while (temp->next != NULL) {
//traverse n elements left or right
}
如果我每次只需要遍历 1 个元素,那么它就像
temp = temp->next;
如果有人可以根据节点的值解释遍历“n”个元素的策略,那将不胜感激。
编辑:只有在该方向上有足够的元素时,您才能朝该方向前进。所以在 1 -> 3 的情况下,你只能往右边走 3。