好的,解决方案可能很简单,但目前我还不理解。
代码:
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++;
}
这究竟是如何在单链链接列表的开头添加元素的? 我创建了一个具有给定值的新元素。
接下来的两行会发生什么?我理解在列表中插入元素的过程,但我无法将其与此代码相关联。
首先是什么?头?
答案 0 :(得分:3)
在添加堆栈之前,如下所示:
首先 - &gt;下一个 - &gt;下一个 - &gt; ... - &gt;端;
你创建了元素。
然后你说“elem的下一个元素是第一个元素”。
elem.next = first;
所以你有
elem - &gt;第一;
最后你将第一个elem设置为elem。所以堆栈看起来像这样:
elem - &gt;第一 - &gt;下一个 - &gt; ... - &gt;端;
现在首先是id,所以基本上你回到了第一个状态:
首先 - &gt;下一个 - &gt;下一个 - &gt; ... - &gt;结束; (首先是你刚刚添加的新元素)
此架构可能会有所帮助:
答案 1 :(得分:0)
elem.next = first;
表示先前的第一个元素应该在新元素的旁边
first = elem;
表示您的新元素成为第一个