核心思想:因為單鏈表的指向是單向的,所以一旦我們改變了一個結點指針的指向,這個鏈就斷開了,那我們怎么解決呢,我們可以把前后的結點指針給保存起來,這樣就直接可以通過變量名直接指向了。
//題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表并輸出翻轉后鏈表的頭結點//鏈表的定義如下:struct ListNode{ int m_nValue; ListNode* m_pNext;};ListNode* ReversseList(ListNode* pHead){ ListNode* PReversedHead = NULL; ListNode*pNode = pHead; ListNode*pPrev = NULL; while (pNode != NULL) { ListNode* pNext = pNode->m_pNext; if (pNode->m_pNext==NULL)//翻轉后的頭結點一定是原始鏈表的尾結點 { pReversedHead = pNode; } pNode->m_pNext = pPrev; pPrev = pNode; pNode = pNext; } return pReversedHead;}新聞熱點
疑難解答