last指向最後一個節點5(也就是翻轉結束後的頭節點,遞歸裏面直接return 不需要修改),(head.next).next=head
負責把當前的 ... -> 3 -> 4
變成 3 <- 4
,然後3->null
,因爲它現在是隊頭變隊尾。
ListNode* reverse(ListNode*&head,int n){
if(n==0){
nextChain=head->next;
head->next=nullptr;
return head;
}
if(head->next==nullptr){
return head;
}
ListNode* last=reverse(head->next,n-1);
head->next->next=head;
head->next=nullptr;
return last;
}