java listnode实例变量
我试图理解这个名为append和prepend的方法,但是如果没有一个正确的视觉图像在我的脑海中,我似乎无法理解它。last.next到底是什么意思?为什么一个实例变量会与另一个实例变量卡住?正如您所看到的,这两个类一起工作以形成链表中的listnode。代码如下: 在linkedlist.java类中,代码如下所示:java listnode实例变量,java,list,linked-list,Java,List,Linked List,我试图理解这个名为append和prepend的方法,但是如果没有一个正确的视觉图像在我的脑海中,我似乎无法理解它。last.next到底是什么意思?为什么一个实例变量会与另一个实例变量卡住?正如您所看到的,这两个类一起工作以形成链表中的listnode。代码如下: 在linkedlist.java类中,代码如下所示: public class LinkedList { /** First node in linked list - dummy node */ private
public class LinkedList {
/** First node in linked list - dummy node */
private ListNode first = new ListNode(null);
/** Last node in linked list */
private ListNode last = first;
/**
* Appends a String data element to this LinkedList.
*
* @param data
* the data element to be appended.
*/
public void append(String d) {
// TODO Code here for append
ListNode node = new ListNode(d);
last.next = node;
last = last.next;
length++;
//last = appendSecondNode;
//first = appendFirstNode;
} // method append(String)
/**
* Prepends (adds to the beginning) a String data element to this
* LinkedList.
*
* @param data
* the data element to be prepended.
*/
public void prepend(String d) {
// TODO Code here for prepend
// assigns to d to the first box of ListNode
// handle first prepend by making it
// work exactly like append
if(length==0){
append(d);
return;
}
//create new ListNode to prepend
ListNode toAddNode = new ListNode(d);
//set link from the node to add the previous
// first element so we don't lose the rest of the list
toAddNode.next = first.next;
//update the new first node
first.next = toAddNode;
// increment the length of the list
length++;
} // method append(String)
in another class we have a listnode.java the code looks like this:
// ListNode.java
public class ListNode
{
public String data;
public ListNode next;
public ListNode(String d)
{
data = d;
next = null;
} // constructor
} // class ShortNode
LinkedList中的每个元素都有数据,以及到下一个元素的链接。 您的LAST实际上是列表中的最后一个元素。但是ListNode仍然需要到下一个ListNode的链接,而下一个ListNode并不存在。解决方法是简单地使last.next为空 当您附加一个元素时,您需要告诉LAST在它之后实际上有一个新的ListNode。因此,将last.next设为新节点。最后,过去是最后一个元素的内容现在不再是最后一个元素,因此需要将last更新为=新节点 类似地,对于第一个元素(尽管在本例中,我个人会将其重命名为“beforeFirst”,因为这更清楚地说明了它的用途) 阅读LinkedList上的wikipedia页面: 这是我所在大学关于列表结构的课堂讲稿: 为什么一个实例变量会与另一个实例纠缠在一起 变量
不确定您的意思…例如,我可以键入last.next。视觉上的真正含义是什么?为什么我可以这么做?谢谢你的信息。现在就看这个!