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

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

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

/** *

  • @param head ListNode类
  • @param k int整型
  • @return ListNode类 */

function reverseKGroup( head , k ) { // write code here if(head ==null|| head.next ==null) return head;

const dummy=new ListNode(0);
dummy.next=head;
let prev=dummy,end=dummy;

while (end.next !== null) {
    for(let i=0;i<k&&end!==null;i++){
        end=end.next;
    }
    
    if(end==null) break;
    
    let next=end.next;
    end.next=null;
    let start=prev.next;
    prev.next=reverse(start);
    
    start.next=next;
    
    prev=start;
    end=start;
}

return dummy.next;

}

// 翻转链表

function reverse(head){ if(head==null||head.next==null) return head;

let prev=null,cur=head;

while(cur!==null){
    const temp=cur.next;
    cur.next=prev;
    prev=cur;
    cur=temp;
}

return prev;

}

module.exports = { reverseKGroup : reverseKGroup };

全部评论

相关推荐

09-22 09:42
门头沟学院 Java
牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
迷茫的大四🐶:价格这么低都能满了?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务