遞歸版翻轉鏈表


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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章