Reverse Nodes in k-Group
要求:给一个单向链表,同时提供一个正整数k,以长度为k切分链表,把切分后的链表翻转,然后组合结果,并返回。
例如:
代码:
public static ListNode reverseKGroup(ListNode head, int k) {
if(head==null||k==1){
return head;
}
int[] temp=new int[k];
ListNode node=head;
for (int i = 0; i < k; i++) {
temp[i]=head.val;
head=head.next;
if (head == null&&i<k-1) {
return node;
}
}
ListNode tNode=node;
for (int i = k-1; i > -1; i--) {
tNode.val=temp[i];
tNode=tNode.next;
}
if(tNode!=null){
reverseKGroup(tNode,k);
}
return node;
}
结果: