面試題16 反轉(zhuǎn)鏈表

題目鏈接:面試題16 反轉(zhuǎn)鏈表

我的思路

  1. 反轉(zhuǎn)鏈表的基本思路就是把指向后驅(qū)的指針指向前驅(qū)
  2. 如果把指針的指向改變,無法繼續(xù)遍歷鏈表,所以需要輔助指針
  3. 一句話秒殺:指針指向前驅(qū),前驅(qū)節(jié)點(diǎn)后驅(qū)

實現(xiàn)代碼

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        //反轉(zhuǎn)后頭指針
        ListNode* pReversedHead = NULL;
        //遍歷指針
        ListNode* pNode = pHead;
        //前驅(qū)指針
        ListNode* pPrev = NULL;
        while(pNode != NULL)
        {
            ListNode* pNext = pNode->next;
            if(pNext == NULL)
                pReversedHead =pNode;
            pNode->next=pPrev;
            pPrev=pNode;
            pNode=pNext;
        }
        return pReversedHead;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目:輸入一個鏈表,反轉(zhuǎn)鏈表后,輸出鏈表的所有元素。 思路1:用列表保存鏈表中的所有元素,然后將其進(jìn)行反轉(zhuǎn),新建鏈...
    minningl閱讀 268評論 0 0
  • 題目:定義一個函數(shù),輸入一個鏈表的頭節(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點(diǎn) 遞歸算法: 1.找到最后一個節(jié)點(diǎn)和倒...
    Felicia1993閱讀 374評論 0 0
  • //leetcode中還有花樣鏈表題,這里幾個例子,冰山一角 求單鏈表中結(jié)點(diǎn)的個數(shù)----時間復(fù)雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,646評論 0 6
  • 題目描述 輸入一個鏈表,反轉(zhuǎn)鏈表后,輸出鏈表的所有元素。 代碼實現(xiàn) 主要思路 1、首先我們需要3個結(jié)點(diǎn),第一個是當(dāng)...
    _minimal閱讀 233評論 0 0
  • 題目:定義一個函數(shù),輸入一個鏈表的頭結(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭結(jié)點(diǎn)。 解法:
    qmss閱讀 219評論 0 0

友情鏈接更多精彩內(nèi)容