如何确定链接列表的方向

时间:2014-09-21 18:43:02

标签: java linked-list singly-linked-list

我必须创建一个向左侧添加自己的链接列表,以便我认为它是这样的,其中框是节点,箭头是链接:

tail [] <- [] <- [] <- ... [] head

但是,在添加第二个节点时,如何确定链表的方向? 你怎么知道它将被放置在哪一方?

2nd?  1st  2nd?
 []   []   []

例如这段代码:head = new IntNode(5,head)
如果链接列表是这样的话会添加到右边:

         head         tail
    [] -> [] -> [] -> []

但是只有在添加到已经制作的具有该格式的列表时才会这样,那么在创建新链接列表时它会从哪一侧开始?

1 个答案:

答案 0 :(得分:2)

嗯,链接列表没有leftright

该方向仅用于方便的图形表示,因为我们可以轻松地对其进行描绘。从技术上讲,您可以横向绘制链接列表,从上到下,从下到上,从左到右,并不重要。

所有链接列表都是从头到尾的单向。或者在双重链表的情况下,从头到尾和从头到尾的双向

我想你可以从技术上制作一个双向链表,其中所有"left""prev"指针都是null,以使它看起来像是正确的。或者制作所有"right""next"指针null并使它看起来像是左转。在任何一种情况下,这种方向都没有实际意义。

在内存中,链接列表节点的Node.next值仅包含下一个节点的内存地址。该内存位置不必在物理上恰好位于节点旁边。从技术上讲,链接列表指针可以在整个内存中进行锯齿形连接,在OS和底层系统决定为它们分配内存的地方连接块。没有&#34; 自然&#34;像我们在现实生活中习惯的顺序,从头到尾的指针序列

例如,就计算机而言,这两个列表是等效的。我只是朝不同的方向画了它们:)

linked lists

相关问题