首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单链列表JavaScript实现

单链列表JavaScript实现
EN

Code Review用户
提问于 2017-01-09 05:56:56
回答 1查看 120关注 0票数 0

如何改进我的单链接列表实现?

代码语言:javascript
复制
"use strict";

var LinkedList = function(){
  this.head = null;
  this.tail = null;
  this.count = null;
}
var Node = function(value){
  this.value = value;
  this.next = null;
}

LinkedList.prototype.addToHead = function(value){
  var newNode = new Node(value);
  if(this.head) {
    this.next = this.head;
    this.head = newNode
    this.count++;
  }
  else this.tail = newNode
}
LinkedList.prototype.addToTail = function(value){
  var newNode = new Node(value);
  if(this.tail) {
    this.tail.next = newNode
  }
  else this.tail = newNode;
}
var ll = new LinkedList();
ll.addToHead(3);
ll.addToHead(4);
ll.addToHead(2);
ll.addToTail(6);
console.log(JSON.stringify(ll))
EN

回答 1

Code Review用户

发布于 2017-01-09 06:34:40

现在看来,这似乎无法正常工作,因此它实际上可能属于堆栈溢出,而不是代码评审。

不管怎么说,我看到的问题是:

  1. 当您尝试向列表的头添加值时,它们将被添加到列表的尾部,因为列表的首始终是空的。当将新值添加到列表的头时,新值应该始终作为列表的首值。
  2. 您的代码在视觉上有点混乱,因为您使用它来引用同一代码块中的两个不同对象。
  3. 您只是在addToHead中无法到达的部分中增加列表元素的计数,不管您做什么,都会导致null计数。相反,在任何添加交互中,计数都应该增加。
  4. 似乎没有交互从列表中删除一个项目,无论是前面还是后面。能够从列表中删除项是功能的核心部分。

有关单链接列表需要支持的内容的完整定义,请参阅此页面

票数 3
EN
页面原文内容由Code Review提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codereview.stackexchange.com/questions/152100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档