就爱瞎逛 2019-09-09 10:32 采纳率: 83.3%
浏览 249
已采纳

leetcode876. 链表的中间结点。用javascript,为什么return是undefined?

题目来源https://leetcode-cn.com/problems/middle-of-the-linked-list
问题①:按这个思路“将链表输出到数组,数组的话可以按索引找“来写的

var middleNode = function(head) {
    let result = [head];
    for(let i = 0, apple = head; apple != null; i++, apple = apple.next){
        result[i] = apple.val;
    }
    console.log(result);
    console.log(result.length);
    console.log (result.slice(Math.floor(result.length/2)));
    return Array.from(result);
}

图片说明

为什么console能正常显示但是return却不行?

问题②:用快慢双指针

var middleNode = function(head) {
    slow = fast = head;
    while(fast && fast.next != null){ //为什么去掉fast 就会报错???
        // console.log(slow.val +" "+fast.val);
        slow = slow.next;
        fast = fast.next.next;
    }
    return slow;
}

去掉fast会报错,但不懂为什么

测试用例:[1,2,3,4,5,6]
图片说明

感谢大佬们在百忙中解答我的疑问!!

  • 写回答

1条回答 默认 最新

  • 「已注销」 2019-09-09 13:23
    关注

    你好我去看了下这道题 有下面这段注释

    /**
     * @param {ListNode} head
     * @return {ListNode}
     */
    

    第一个问题:需要你返回一个列表 而不是一个数组

    第二个问题:最后一个节点时fast会为null 所以fast无next属性

    另外老哥你是写Python的吧。。 变量啥的还是声明下比较好

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 关于线性结构的问题:希望能从头到尾完整地帮我改一下,困扰我很久了
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp