資料結構 單鏈表的逆置

2021-09-25 20:25:21 字數 1270 閱讀 9858

單鏈表的逆置分為兩種方法:頭插法和就地逆置法。

(1)頭插法:

演算法思路:依次取原鍊錶中的每乙個節點,將其作為第乙個節點插入到新鍊錶中,指標用來指向當前節點,p為空時結束。

(2)就地逆置法:

listnode* reverselist(listnode* phead)

listnode* prev = null;

listnode* pcur = phead;

while(pcur != null)

return prev;

}

下面我們來用**的方法具體介紹整個**的實現流程:

初始狀態:

第一次迴圈:

第一次迴圈過後,步驟①:ptemp指向head,步驟②:pcur指向p1,步驟③:ptemp->pnext指向null。

此時得到的prev為: 

第二次迴圈:

第二次迴圈過後,步驟①:ptemp指向p1,步驟②:pcur指向p2,步驟③:ptemp->pnext指向head。

此時得到的prev為:

第三次迴圈:

第三次迴圈過後:步驟①:ptemp指向p2,步驟②:pcur指向p3,步驟③:ptemp->pnext指向p1。

此時得到的prev為:

第四次迴圈:

第四次迴圈過後:步驟①:ptemp指向p3,步驟②:pcur指向null,步驟③:ptemp->pnext指向p2。

此時得到的prev為:

至此,單鏈表的逆置完成。

資料結構 單鏈表 逆置單鏈表

題目 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並返回反轉鍊錶後的頭結點。我們可以借助圖來分析一下 我們定義乙個新的頭結點為head,將begin指向head next,當begin不為空的時候,tmp begin,begin begin next,此時tmp是我們要摘下來的結點。tmp nex...

資料結構 單鏈表的就地逆置

剛完成了嚴蔚敏的資料結構 單鏈表的就地逆置習題 2.21 解題時想到2種方案,特此總結一下 方案1 1遍歷單鏈表,並算出單鏈表的長度n。2定位到節點ai,與節點an i 1 i 1 to n 2 1 也就是單鏈表的一半長度 交換各自的資料 i 方案2 1定位尾節點 2依次將節點插入到尾節點之後 3將...

資料結構 單鏈表的就地逆置

6 1 帶頭結點的單鏈表就地逆置 10 分 本題要求編寫函式實現帶頭結點的單鏈線性表的就地逆置操作函式。l是乙個帶頭結點的單鏈表,函式listreverse l linklist l 要求在不新開闢節點的前提下將單鏈表中的元素進行逆置,如原單鏈表元素依次為1,2,3,4,則逆置後為4,3,2,1。v...