本文只說明一種方法。
例如鍊錶 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比...