快速刪除乙個結點,常規刪結點要找到前乙個結點,如果給出這個結點的指標,可以採取拷貝下乙個結點內容,釋放下乙個結點
單鏈表的倒序反轉,只需將p指向的結點不斷掛到頭結點,將p不斷向下移動即可
#include #includetypedef struct node
node;
typedef node* pnode;
int countnum;
void createnode(pnode* list)//建立乙個鍊錶,且賦值從0開始
//快速刪除乙個結點,給出要刪除的結點的指標,把後乙個結點資料拷貝到這個結點,釋放後乙個結點
//時間複雜度為o(0) 但無法刪除最後乙個結點,無法修改倒數第二個pnext使得鍊錶無法終止
void quickdelete(pnode trvp, pnode delenode)
else }
//單鏈表的倒序反轉,只需將p指向的結點不斷掛到頭結點指向的pnext,將p不斷向下移動即可
void reversenode(pnode hnode)
}int main()
鍊錶的倒置
public static void reorder ref node listhead node lefthead listhead node righthead null node current lefthead.next lefthead.next null while current nu...
單鏈表 鍊錶倒置
鍊錶屬於動態資料結構,可以模擬成一 環 接一 環 的鏈條,這裡每一 環 視作乙個結點,結點串在一起形成鍊錶。這種資料結構非常靈活,結點數目無須事先指定,可以臨時生成。每個結點有自己的儲存空間,結點間的儲存空間也無需連線,結點之間的串連由指標來完成,指標的操作又極為靈活方便,無須移動大批資料,只需修改...
單向鍊錶的倒置
首先要判斷當鍊表的長度為0或者1的時候,直接返回當前節點即可,否則需要兩個輔助 指標 pre next,分別指向頭結點的前結點和後結點,不然next屬性改變的時候就會丟失原先列表的結點位址。首先讓pre null,next null 迴圈當head null 的時候,讓next head.next,...