LeetCode合并有序链表:ListNode构造对象不被识别为指定类型
合并两个有序链表返回值类型问题
在LeetCode解决合并两个有序链表问题时,我先将两个链表的数值存入数组并排序,随后尝试用题目提供的ListNode构造函数将数组转回链表。
题目提供的ListNode构造函数
function ListNode(val, next) { this.val = (val===undefined ? 0 : val) this.next = (next===undefined ? null : next) }
我的实现代码
我通过new ListNode(val,next)生成链表节点,具体代码如下:
head = new Object() // 第一个循环时会被替换为ListNode实例 for(let i = saved.length-1; i > -1 ;i--){ if(i ==saved.length-1){ head = new ListNode(saved[i],null); } else{ head = new ListNode(saved[i],head); } } console.log(head); return head;
遇到的问题
最终返回的head对象在控制台显示为[1,1,2,3,4,4],执行typeof head输出结果为Object,此时LeetCode系统抛出如下类型错误:
throw new TypeError(__serialize__(ret) + " is not valid value for the expected return type ListNode");
我认为返回值应该属于ListNode类型(使用了对应构造函数且拥有val和next属性),但尝试多种方法仍未解决问题。
已尝试的方法
- 使用题目提供的ListNode构造函数
- 创建对象并手动添加
val和next属性 - 将第一个链表的尾节点与第二个链表的头节点连接并覆盖值
内容的提问来源于stack exchange,提问作者user20666769
相关产品推荐
相关产品推荐

