题解 | #链表中的节点每k个一组翻转#

链表中的节点每k个一组翻转

http://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e


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


/**
  * 
  * @param head ListNode类 
  * @param k int整型 
  * @return ListNode类
  */
function reverseKGroup( head ,  k ) {
    // write code here
    if(head == null) return;
    let dummy_a=head,dummy_b=head;
    for(let i=0;i<k;i++){
        if(dummy_b==null) return head;
        dummy_b=dummy_b.next;
    }
    
    const newHead=reverseNode(dummy_a,dummy_b);
    
    dummy_a.next=reverseKGroup(dummy_b,k);
    
    return newHead;
}
    
function reverseNode(a,b){
    let prev=null,cur=a;
    while(cur!==b){
        const next=cur.next;
        cur.next=prev;
        prev=cur;
        cur=next;
    }
    return prev;
}


module.exports = {
    reverseKGroup : reverseKGroup
};
全部评论

相关推荐

mq2:我倒是觉得这种敞亮一点好。能接受就去不能就不去呗。 完了跟现在“正常”公司一样,hr说的天花乱坠,进去一看根本就是996核动力牛马,想走又没应届生身份了。岂不是更糟。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务