重學資料結構(四) 實現單鏈表的反轉

2022-08-23 22:36:11 字數 602 閱讀 2959

思路:

1.因為單鏈表沒有指向前乙個節點的指標域,所以這裡需要建立乙個指向前乙個節點的指標pre,用於儲存每乙個節點的前乙個節點。

2.需要定義乙個儲存當前節點的指標cur,以及下乙個節點的next。

3.先建立cur(當前節點),pre(前乙個節點)指標後,遍歷單鏈表,將當前節點的指標域指向前乙個節點,之後將定義的pre和cur指標往後移動,直至遍歷到最後乙個節點停止。

node類的實現

package com.codezs.datastruct.mylinkedlist;

public class node

public node(t data, nodenext)

public t getdata()

public nodegetnext()

public void setnext(nodenext)

}

package com.codezs.datastruct.mylinkedlist;

public class linklistreverse

return pre;

}}

重學資料結構 單鏈表

我們來學習一些單項鍊表的增刪改查。對於鍊錶可謂是又愛又恨,愛是因為它是真的好用,恨是因為晦澀難懂,來來回回學了幾遍才搞懂。鍊錶中由兩部分構成 資料 位址指標。頭節點一般都是不存放資料,只是當做單項鍊表的開始索引,方便進行相關操作 頭節點不一定都存在 位址指標存放著下乙個節點的記憶體位址,最後乙個節點...

資料結構 單鏈表實現反轉

如果鍊錶只有乙個或者沒有節點,則無需反轉 原鍊錶的第乙個節點即為反轉後的最後乙個元素,需要將其固定,我們叫它final 按原鍊錶的順序從第二個開始對所有節點node進行遍歷,每次將final的next重新指向node的next,將node的next重新指向head的next,將head的next重新...

資料結構 單鏈表反轉

鍊錶反轉一般有兩種解法 遞迴和迭代。首先給出鍊錶的定義 typedef struct taglnode linklist 假設鍊錶為head 1 2 3 4 5 null。linklist reverse linklist head 一開始我的想法是,先遞迴到最後一層,也就是reverse 5 這層...