我被要求在没有任何 API 的情况下制作自己的链表。我有一个数据数组,它是我的元素,然后是我的下一个数组,它保存用于指向数据数组的下一个值的索引引用。例如 :
int nil = -1
Comparable [] data = new Comparable {1, 4, 5, 2, 18, 9}
int [] next = new int {1, 2, 3, 4, 5, nil}
因此,数据中的 1 指向数据中的 4,因为在相应的数组点中,数据中的 1 是下一个中的 1,该值将用作数据中下一个点的索引。
我的问题是我的零值。有人告诉我,将其设置为 -1 将结束列表,但每当我尝试此操作时,它都会设置为 0,因此我尝试的任何操作都会循环,因为最终值将指向第一个值。为什么会发生这种情况,我该怎么做才能避免这种情况?