要求:給一個單向鏈表,同時提供一個正整數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;
}
結果: