题解 | #每K个一组反转链表#

每K个一组反转链表

https://www.nowcoder.com/practice/a632ec91a4524773b8af8694a51109e7

// JS 实现
function ListNode(x){
    this.next = null;
    this.val = x;
}

let list = new ListNode();
let head = list;
let data = readline().split(' ').map(value => parseInt(value));
let k = parseInt(readline());
for(let i = 0;i<data.length;i++){
    head.next = new ListNode(data[i]);
    head = head.next;
}
let head1 = list.next;
var reverseLink = function(head,k){
    let prev = null,cur = head;
    let p = head;
    let i = 0;
    while(i<k){
        if(p == null){
            return head;
        }
        p = p.next;
        i++;
    }
    for(let i = 0;i<k;i++){
        let next = cur.next;
        cur.next = prev;
        prev = cur;
        cur = next;
    }
    head.next = reverseLink(cur,k);
    return prev;
}
let result = reverseLink(head1,k);
let res = []
while(result){
    res.push(result.val);
    result = result.next;
}
console.log(res.join(' '));
全部评论

相关推荐

01-08 09:40
中南大学 Java
苏苏加油努力:你的女神不回你消息,并且给别的男生发消息 be like
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务