这是我老师的示例代码:
public void push(T item){
node<T> newNode = new node<T>(item);
newNode.next = head;
head = newNode;
}
我的理解是这样的: 我创建一个名为 newNode 的新节点。这会将新节点的数据值设置为 item,而 next 则指向空值(null)。
然后我说新节点指向它旁边的节点,称为头节点。然后我将列表的头部设为 newNode。
这是我不明白的: 作为头的前一个节点会发生什么?它怎么知道去追寻 newNode 而不是直接消失并从列表中消失?
例如,如果 5 是头节点,6 是新节点,那么 6 将指向 5 作为其后面的节点。但是我们说头部是 5,那么它也是 6 吗?那么 5 会发生什么呢?
最佳答案
这将是一个有点奇怪的答案,但也许它会有助于了解如何设置指针:
所以原始列表如下所示:
linkedList -(head)-> node1 -(next)-> node2 -(next)-> etc.
然后创建一个新节点:node<T> newNode = new node<T>(item);
node3 -(next)-> null
linkedList -(head)-> node1 -(next)-> node2 -(next)-> etc.
然后你让新节点指向你的旧头:newNode.next = head;
node3 -(next)-> node1 -(next)-> node2 -(next)-> etc.
linkedList -(head)-> node1 -(next)-> node2 -(next)-> etc.
然后将头指针更改为新节点:head = newNode;
linkedList -(head)-> node3 -(next)-> node1 -(next)-> node2 -(next)-> etc.
关于java - 栈式linkedList中的push函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46992667/