單鏈表就地逆置

2021-10-25 19:40:25 字數 561 閱讀 4127

就地逆置鍊錶

分析:我們採用頭插法或者相鄰節點直接修改指向的方法來進行逆置。

**如下:

struct link ;

#define _crt_secure_no_warnings

#include #include void reverse(link *h)

h->next = pre;//頭指標指向最後乙個節點

q->next = null;//第乙個節點指向null,不然就是迴圈單鏈表了

*/ //我們也可以採用頭插法進行逆置,兩個方法的時間複雜度均為o(n)

struct link *l = h, *p = h->next,*r;

l->next = null;

while (p)

h = l;

}int main() {

int n, data;

printf("請輸入建立鍊錶的節點個數:");

scanf("%d", &n);

struct link *q;

struct link

單鏈表就地逆置

思路為定義四個工作指標p back p q back q,然後先將p q從鍊錶中摘下,在分別在p back後和q back後插入。最後在重新定位工作指標。注意點 若先全部摘下,否則在中點相遇時p和q back會重疊,使得鍊錶斷開,所以當長度為偶數時到達中點的兩個節點時要跳出迴圈,另外直接交換兩者 迴...

單鏈表的就地逆置

單鏈表的就地逆置是指輔助空間o 1 的逆置方法,有兩種方法 普通迴圈 頭插法重新建立帶頭節點的新鍊錶 和遞迴。下面我們詳細介紹這兩種方法 方法一 頭插法 演算法思想 逆置鍊錶初始為空,表中節點從原煉表中依次 刪除 再逐個插入逆置鍊錶的表頭 即 頭插 到逆置鍊錶中 使它成為逆置鍊錶的 新 的第乙個結點...

單鏈表的就地逆置

單鏈表的就地逆置 時限 1000ms記憶體限制 10000k 總時限 3000ms。描述讀入資料構造乙個單鏈表,實現單鏈表的就地逆置。輸入先輸入乙個小於100的正整數n,再從小到大的輸入n個正整數,建立乙個單鏈表,然後實現單鏈表的就地逆置。輸出按順序輸出逆置後的單鏈表的所有元素,每個元素佔一行。輸入...