實現乙個函式:void reverse(struct list_node *head)在盡量不借助輔助變數的情況下,實現任意長度單鏈表(不考慮記憶體限制)的反轉(or 逆序)。
struct list_node;
struct list;
void reverse(struct list_node *head)
int main()
; struct list_node *p = null;
/*init list*/
/*列印反轉前各節點的值*/
reverse(list.head);
p = list.head;
list.head = list.tail;
list.tail = p;
/*列印反轉後各節點的值*/
}
**實現:
#include struct list_node;
struct list
;void reverse(struct list_node *head)
int main()
; struct list_node node[10] = ;
struct list_node *p;
for(i = 0; i < 9; i++)
node[9].index = 9;
list.head = node;
list.tail = node + 9;
reverse(list.head);
for(p = list.tail; p; p=p->next)
return 0;
}
單鏈表就地反轉
實現乙個函式 void reverse struct list node head 在盡量不借助輔助變數的情況下,實現任意長度單鏈表 不考慮記憶體限制 的反轉 or 逆序 struct list node struct list void reverse struct list node head ...
就地鍊錶反轉 單鏈表反轉總結篇
單鏈表的反轉是常見的面試題目。本文總結了2種方法。1 定義 單鏈表node的資料結構定義如下 class listnode 15 return dummy.next 16 2.4 總結 1個頭結點,2個指標,4行 注意初始狀態和結束狀態,體會中間的 過程。3 方法2 新建鍊錶,頭節點插入法 3.1 ...
單鏈表就地轉置
試寫一道演算法,實現單鏈表的就地逆置 反轉 即利用原表的儲存空間將線性表 a1,a2,an 逆置 反轉 為 an a2,a1 輸入格式 輸入共有兩行,第一行為線性表長度 n 0 n 26 第二行共有 n 個大寫字母,為順序輸入的線性表的元素,每兩個大寫字母之間乙個空格。輸出格式 輸出只有一行,為逆置...