题解 | #牛群的重新分组#
牛群的重新分组
https://www.nowcoder.com/practice/267c0deb9a6a41e4bdeb1b2addc64c93
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @param k int整型 * @return ListNode类 */ function reverseKGroup( head , k ) { // write code here let dummy = new ListNode(0) dummy.next = head let pre = dummy let cur = head let count = 0 while(cur!=null){ count++ if(count%k==0){ pre = reverse(pre,cur.next) cur = pre.next }else{ cur = cur.next } } return dummy.next function reverse(pre,end){ let cur = pre.next let tail = cur while(cur!=end){ let temp = cur.next cur.next = pre.next //将链表依次逆转 pre.next = cur //保存反转链表的前驱结点 cur = temp } tail.next = end //逆转后的最后一个结点与end结点连接 console.log(tail) return tail } } module.exports = { reverseKGroup : reverseKGroup };