为什么这个javascript add()函数用于链表返回节点?
why does this javascript add () function for a linked list return node?
我正在努力理解这个单链表在JavaScript中的实现是如何工作的。具体来说,是add()方法中第23行和第35行的return语句。
——在第23行,为什么我们返回node,而不是使用'return';而不是?在第35行,为什么我们要返回node,因为它似乎不会影响代码的功能?
谢谢!
// Constructors (Node and SinglyList)
function Node(data) {
this.data = data;
this.next = null;
}
function SinglyList() {
this._length = 0;
this.head = null;
}
//Add Method
SinglyList.prototype.add = function(value) {
var node = new Node(value),
currentNode = this.head;
if(!currentNode) {
this.head = node;
this._length++;
// return the new Node object. (why can't we just use return; here?)
return node;
}
//USE CASE 2: NON-EMPTY LIST
while (currentNode.next) {
currentNode = currentNode.next;
}
currentNode.next = node;
this._length++;
// return statement doesn't seem to do anything here.
return node;
};
var list = new SinglyList();
list.add(1);
list.add(2);
list.add('foo');
console.log(list.head);
这个SinglyList的作者只是想这样实现它。
在用户想要在列表中创建的新节点的引用的用例中,他们可以保存它,而不是在添加后再次找到该节点。没有单一的正确的方法来实现LinkedList,并且很多都留给解释。
如果在添加节点后不需要引用,则可以选择忽略返回的元素。
相关文章:
- Rails/Javascript链接到用于切换多个元素的函数
- 删除时出现Javascript链表问题
- 将 Javascript 哈希表用于多个 If Thens
- JS中的专用链表
- 如何将 hasNext() 和 hasPrevious() 方法用于 Node 的“智能列表”链表模块
- JavaScript:用于查找链表节点的递归函数返回错误的节点
- JavaScript 如何处理传递给与这个链表示例相关的函数的对象
- 如何在javascript中实现函数调用的任意链表
- 链表与字典数组
- 在链表中循环
- Javascript:检测并从循环链表中删除一个循环
- 反转链表的时间复杂性
- 用javascript对链表进行分区
- 链表的javascript循环
- 为什么这个javascript add()函数用于链表返回节点?
- jQuery移动链表pageInit(),而不是$(document).ready()
- JS将数组转换为json链表
- 转换数组到链表-从雄辩的Javascript
- Javascript:如何做函数的链表或类似的
- 为什么链表被称为链表?