将元素添加到单链链接列表

时间:2013-05-14 20:58:30

标签: java list

好的,解决方案可能很简单,但目前我还不理解。

代码:

ListElem<T> first;
int size = 0;
public void add(T value) {
  if (value == null)
    return;
  ListElem<T> elem = new ListElem<T>(value);
  elem.next = first;
  first = elem;
  size++;
}

这究竟是如何在单链链接列表的开头添加元素的? 我创建了一个具有给定值的新元素。

接下来的两行会发生什么?我理解在列表中插入元素的过程,但我无法将其与此代码相关联。

首先是什么?头?

2 个答案:

答案 0 :(得分:3)

在添加堆栈之前,如下所示:

  

首先 - &gt;下一个 - &gt;下一个 - &gt; ... - &gt;端;

你创建了元素。

然后你说“elem的下一个元素是第一个元素”。

elem.next = first;所以你有

  

elem - &gt;第一;

最后你将第一个elem设置为elem。所以堆栈看起来像这样:

  

elem - &gt;第一 - &gt;下一个 - &gt; ... - &gt;端;

现在首先是id,所以基本上你回到了第一个状态:

  

首先 - &gt;下一个 - &gt;下一个 - &gt; ... - &gt;结束; (首先是你刚刚添加的新元素)

此架构可能会有所帮助:

enter image description here

答案 1 :(得分:0)

elem.next = first;

表示先前的第一个元素应该在新元素的旁边

first = elem;

表示您的新元素成为第一个