You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何动态访问属性访问器,实现链表第n个next节点快速获取

实现方案

你可以通过封装遍历逻辑实现需求,以下是两种常用的实现方式:

1. 通用工具函数实现

独立封装的工具函数不需要修改原有ListNode类的定义,兼容性最强:

function getNthNextNode(head, n) {
  let current = head;
  for (let i = 0; i < n; i++) {
    // 链表长度不足时提前返回,避免报错
    if (!current) return null;
    current = current.next;
  }
  return current;
}

// 调用示例:获取第100个.next节点
const targetNode = getNthNextNode(answerList, 100);

2. 原型扩展实现(可选)

如果项目中频繁用到该能力,可以直接给ListNode扩展原型方法,调用更简洁:

ListNode.prototype.getNthNext = function(n) {
  let current = this;
  for (let i = 0; i < n; i++) {
    if (!current) return null;
    current = current.next;
  }
  return current;
}

// 调用示例
const targetNode = answerList.getNthNext(100);

注意事项

  • 上述实现默认n=0返回原节点,n=1返回第一个.next节点,和你要获取第100个.next节点的需求完全匹配,直接传参数100即可
  • 内置了边界判断逻辑,若链表实际长度不足100个后续节点,会直接返回null避免类型错误,你也可以根据业务需求调整为抛出异常提示
  • 循环实现的时间复杂度为O(n)、空间复杂度为O(1),是链表遍历的最优方案,不会出现递归实现可能导致的栈溢出问题

内容的提问来源于stack exchange,提问作者Anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:36:05