给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
接替思路
var resverseKGoroup = function (head, k) {
if (!head) return null;
let ret = new ListNode (-1,head),
pre = ret
do {
pre.next = reverse(pre.next,k);
for(let i = 0; i< k && pre;i++){
pre = pre.next
}
if (!pre)nreak;
}while(1)
return ret.next;
}
翻转
vr reverse = function (head,n){
let pre = head, cur = head,con = n;
while(--n&& pre){
pre = pre.next
}
if (!pre)return head;
pre = null;
while(con--){
[cur.next,pre,cur] = [pre,cur,cur.next]
}
head.next = cur
return pre