輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。

2021-08-03 03:53:05 字數 575 閱讀 6386

劍指offer:輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。

兩種思路:

思路1:建立節點指標型別堆疊,遍歷鍊錶,將指標壓棧,順次出棧,實現反轉。這個占用記憶體空間較大。

思路2:依次遍歷鍊錶,改變節點的指向,注意之前要將下乙個節點的位址賦值給乙個指標next儲存。

事實上,next指標表示去掉已經反轉的鍊錶的第二個節點,pre指標表示反轉過的煉表表頭,phead指標表示去掉已經反轉的鍊錶的表頭。

**如下:

//#include #include #include #include #include #include using namespace std;

struct listnode

};class solution

return pre;

}}; int main()

solution s;

r = s.reverselist(p);

cout << r->val << endl;

system("pause");

return 0;

}

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭

方法一 利用三個指標進行反轉 注 考慮鍊錶斷開問題 頭結點為null 有乙個頭結點 listnode reverselist listnode phead listnode newphead null listnode node phead listnode pre null listnode ne...

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭

可以採用迭代法 new 乙個值為null 的新鍊錶,然後new乙個臨時temp鍊錶,這個temp主要用來head.next 與head之間的替換 首先讓head.next指向為null的新鍊錶 反轉後head為鍊錶末尾,head的後面為null才對 然後讓新鍊錶指向head,這樣null的上家就變成...

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

題目 輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。分析 方法 1 更改next指標域法。當沒有節點或者只有乙個結點時,直接返回這個節點 否則至少有兩個節點時,用三個指標n1,n2,n3,n1指向第乙個節點,n2指向第二個節點,n3指向第三節點 可能為空 每次修改n2的next讓其指向n1,然後利用n...