每天學習一演算法 3 單鏈表翻轉

2021-06-29 07:42:54 字數 509 閱讀 9166

本文只說明一種方法。

例如鍊錶 head->node1->node2->node3->node4->null;

翻轉之後 head->node4->node3->node2->node1->null;

思路:

我們先定義三個節點:p,q,s;

其中,p是當前節點,s是下乙個節點,q是上乙個節點;

1.儲存下乙個節點,s = p->next;

3.現在,當前節點p要向下進行,當前節點也就變成了上乙個節點,q = p;

4.把下乙個節點賦給p,p = s;

void reverse(linklist l)

linklist h = (linklist)malloc(sizeof(node));

h->next = q;

print(h);

}

完整**戳這裡;

演算法16 單鏈表翻轉

1.反轉單鏈表 2.二叉樹中序遍歷非遞迴 3.合併兩個字典 4.最長的01個數相等的連串 5.長度為2n的陣列,劃分為相等兩部分,使其之和的差的絕對值最小 反轉單鏈表 遞迴與非遞迴方式 非遞迴方式 非遞迴從第乙個節點開始翻轉鍊錶 可以採用雙指標與三指標來實現 三指標 ppre pcur pnext ...

每天一演算法 (排序演算法總結)

一 集中排序演算法的比較 1.一般情況下幾乎不太使用氣泡排序,它過於簡單了,以至於可以毫不費力的寫出來。然而當資料量很小的時候,它會有些應用的價值。2.選擇排序雖然把交換次數降到了最低,但比較的次數仍然很大,當資料量小的時候,並且交換資料相對於比較資料更加耗時的情況下,可以應用選擇排序。3.單大多數...

每天一演算法(生命遊戲)

說明 生命遊戲 game of life 為1970年由英國數學家j.h.conway所提出,某一細胞的鄰居包括上 下 左 右 左上 左下 右上與右下相鄰之細胞,遊戲規則如下 復活 如果某位置原無細胞存活,而該位置的鄰居為三個,則該位置將復活一細胞。解法 生命遊戲的規則可簡化為以下,並使用case比...