刪除乙個無頭單鏈表的非尾節點 從尾到頭列印單鏈表

2021-09-30 14:39:59 字數 454 閱讀 3967

刪除乙個單鏈表的非尾結點,並且不能遍歷鍊錶,所以我們可以嘗試刪除其他結點以代替此節點,在這裡,我們用要刪除的結點的下乙個結點來代替此節點,刪除下乙個結點之前,先將這個節點儲存起來,再把此結點的值域和指標域賦值給原本要刪除的結點,這樣一來,只用刪除當前被儲存起來的結點即可。

部分**:

// 刪除單鏈表的非尾結點

void deletenottailnode(pnode pos)

從尾到頭列印單鏈表,利用遞迴的方法可以輕鬆地實現。

// 使用遞迴實現從尾到頭列印單鏈表

void printfromtail2head(pnode phead)

在無頭單鏈表的乙個非頭節點前插入乙個節點

思路 由於單鏈表的單向性,所以我們現在這個非頭結點的後面插入乙個節點,然後在交換這兩個節點就可以了。標頭檔案 鍊錶定義 include include include typedef int datatype typedef struct strnode node typedef struct st...

刪除無頭單鏈表的非尾結點並列印單鏈表

問題描述 假設有乙個沒有頭指標的單鏈表。乙個指標指向此單鏈表中間的乙個節點 不是第乙個,也不是最後乙個節點 請將該節點從單鏈表中刪除。一般鍊錶的刪除需要順著頭結點向下找到當前待刪節點的前驅節點,然後讓前驅節點指向後驅節點就行了。這裡,沒有頭結點,就沒辦法找到前驅結點。但我們可以採用 狸貓換太子 的做...

無頭單鏈表中刪除非尾節點及插入節點(不能遍歷鍊錶)

首先給出鍊錶節點的定義 include include include typedef int datatype typedef struct slistnode slistnode 思路 本題要求不能遍歷鍊錶,那麼在知道所刪節點資訊後,我們能夠知道的只有該節點及該節點後面的節點資訊,所以我們只能利...