【问题标题】:Appending in linked lists在链表中追加
【发布时间】:2020-11-25 21:21:57
【问题描述】:

回复:https://repl.it/@Stylebender/LinkedList#index.js

所以我知道代码是正确的,但我只是好奇第 21 行相对于append method() 是如何工作的。

如果我们声明指针 (this.tail.next) 应该指向 newNode,那么 this.head.next 不应该每次都引用一个 newNode 以便 this.head.next 永远只是 === { value: X, next: null } 的正在追加的最新的 newNode。

我知道这显然是错误的,而且显然不是这样,因为当您运行 repl 并开始多次调用 append 方法时,您会得到一个越来越大的下一个值。

我想我的问题是,为什么 { value: X, next: null } 形式的 newNode 不会在每次调用 append 方法时覆盖 head 属性,因为这不是我们告诉程序要做的吗? (尽管我知道这显然是错误的)

【问题讨论】:

    标签: data-structures linked-list singly-linked-list


    【解决方案1】:

    链表的头总是指向同一个节点。当添加新节点时,它们被添加到末尾成为尾部,头部实际上并没有改变。
    在您添加第一个节点的情况下,头部只会更改,因为它不再指向 null,它指向刚刚添加的新节点。然而它的价值并没有改变。添加的任何连续节点都附加到列表的末尾。所以当添加第三个节点时,第二个节点变为指向第三个节点。

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多