如何修改自定义LinkedList实现使其适配LeetCode删除链表节点题解
问题根因
LeetCode 题目约定的单链表节点使用val属性存储节点值,你自定义的Node类中使用的是value属性,属性名不匹配导致题解代码执行时读取不到对应值,所以运行失败。
修改方案
你可以任选下面一种方案修改即可:
- 方案一:直接修改
Node类的属性名,和LeetCode规范对齐,原有题解代码可以直接复用:
class Node { constructor(value) { // 将属性名从value改为val即可 this.val = value; this.next = null; } } class LinkedList { constructor(value) { const newNode = new Node(value); this.head = newNode; this.tail = this.head; this.length = 1; } }
如果选择该方案,你其他操作链表的代码中如果用到了value属性,需要同步改成val,避免其他逻辑报错。
- 方案二:如果不想改动现有Node类的属性命名,也可以对应修改题解代码里的属性名:
var deleteNode = function (node) { node.value = node.next.value; node.next = node.next.next; };
内容的提问来源于stack exchange,提问作者Fernando Salas
相关产品推荐
相关产品推荐

