when i try to do a LeetCode question # 25, use var can't pass, but use let can pass
var
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} k
* @return {ListNode}
*/
var reverseKGroup = function(head, k) {
var p = head;
var cur = head;
var pre = null;
for(var i=0; i< k; i++) {
// 如果里面没走到最后就结束,则直接返回这部分链表 不需要再反转
if(p == null) return head;
p = p.next;
}
// 反转部分链表
for(var j=0 ; i< k; i++) {
var temp = cur.next;
cur.next = pre;
pre = cur;
cur = temp;
}
// 此时的尾部即为一开始的头部,next 为接下来反转
head.next = reverseKGroup(cur, k);
return pre;
};
the only difference is use "var" or "let".
use var will cause an overflow.
Line 13 in solution.js
var reverseKGroup = function(head, k) {
^
RangeError: Maximum call stack size exceeded
can somebody explain this ?