日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

反转链表(TX)

發布時間:2024/4/18 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 反转链表(TX) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

思路

首先我們想要的效果圖如下

首先定義一個cur指針,指向頭結點,再定義一個pre指針,初始化為null。
然后就要開始反轉了,首先要把 cur->next 節點用tmp指針保存一下
因為接下來要要處理該節點,也就是改變 cur->next 的指向了,將cur->next 指向pre ,然后cur要移動到下一位置繼續處理節點

再接下來,就是循環走如下代碼邏輯了,繼續移動pre和cur指針。

最后,cur 指針已經指向了null,循環結束,鏈表也反轉完畢了。此時我們return pre指針就可以了,pre指針就指向了新的頭結點

雙指針法

class Solution { public:ListNode* reverseList(ListNode* head) {ListNode* cur=head;ListNode* pre=nullptr;ListNode* temp=nullptr;while(cur){//1-保存一下 cur的下一個節點,因為接下來要改變cur->nexttemp=cur->next;//2- 翻轉操作cur->next=pre;//3-更新pre 和 cur指針pre=cur;cur=temp;}return pre;} };

遞歸法

class Solution { public:ListNode* reversal(ListNode* pre,ListNode* cur){if(cur==nullptr) return pre;ListNode* temp=cur->next;cur->next=pre;// 可以和雙指針法的代碼進行對比,如下遞歸的寫法,其實就是做了這兩步return reversal(cur,temp);}ListNode* reverseList(ListNode* head) {return reversal(nullptr,head);} };

總結

以上是生活随笔為你收集整理的反转链表(TX)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。