25. Reverse Nodes in k-Group(js)
Posted mingL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了25. Reverse Nodes in k-Group(js)相关的知识,希望对你有一定的参考价值。
25. Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list.
k is a positive integer and is less than or equal to the length of the linked list. If the number of nodes is not a multiple of k then left-out nodes in the end should remain as it is.
Example:
Given this linked list: 1->2->3->4->5
For k = 2, you should return: 2->1->4->3->5
For k = 3, you should return: 3->2->1->4->5
Note:
- Only constant extra memory is allowed.
- You may not alter the values in the list‘s nodes, only nodes itself may be changed.
题意:对给定链表每k个节点进行反转一次
代码如下:
/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @param {number} k * @return {ListNode} */ var reverseKGroup = function(head, k) { if(!head || k===1) return head; var dummy=new ListNode(-1); var pre=dummy,cur=head; dummy.next=head; var i=0; while(cur){ i++; if(i%k===0){ pre=reverseOneGroup(pre,cur.next); cur=pre.next; }else{ cur=cur.next; } } return dummy.next; }; var reverseOneGroup=function(pre,next){ var last=pre.next; var cur=last.next; while(cur!==next){ last.next=cur.next; cur.next=pre.next; pre.next=cur; cur=last.next; } return last; }
以上是关于25. Reverse Nodes in k-Group(js)的主要内容,如果未能解决你的问题,请参考以下文章