C 簡單鍊錶逆置和有序鍊錶實現

2021-09-14 02:14:39 字數 942 閱讀 2625

今天聽說同學面試問了鍊錶逆置,於是久違地敲了下**。。。

這裡逆置用的是插頭法,網上資料也很多,大家可以去找找有**的。

將需要逆置的鍊錶的頭去掉!

也就是說,我們可以用乙個輔助鍊錶(p)去指向當前head->next節點。於是我們暫時儲存了除head以外的鍊錶,然後將表頭割裂!

head->next = null;

並且將其賦值給另乙個輔助鍊錶(q)。

做完這些初始化操作之後,我們進入迴圈部分:

迴圈部分很重要的是理解指標賦值這件事情!

乙個指標物件指向的是乙個位址!而鍊錶可以說一連串記憶體分散的單元,比如說表頭指標,實際上儲存的是乙個node節點資訊的位址,所以我們不能直接將指標賦值認為是複製!

#includeusing namespace std;

struct node;

node *create(node* head,int len)

if(t < l->val)

else

node *temp = new node();

temp->val = t;

temp->next=null;

temp->next = l->next;

l->next = temp;

cout<<"head->next->value: "vall->next = null; //將頭結點之後置空

while(p!=null)

return l;

}int main()

node *result = new node();

reverse(head);

result = head;

while(result!=null)

return 0;

}

鍊錶之鍊錶的逆置

題目 資料結構實驗之鍊表三 鍊錶的逆置 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進...

13 鍊錶逆置簡單應用

這裡只介紹鍊錶逆置的實現 效果展示 賦值 padd data i padd next null 建立鍊錶 if head null else ptmp始終保持在最後乙個結點位置,方便新新增的結點的插入 ptmp padd 間接修改實參頭結點的值 phead head 列印鍊錶 void list p...

鍊錶就地逆置

就地逆置,就是在不借助任何中間變數的情況下,逆置一單鏈表。演算法思路 逆置後的點鍊錶初始為空,表中的節點不是新生成的,而是從原鍊錶當中一次 刪除 再逐個頭插到逆置表中。設逆置鍊錶的初始態為空表,刪除 已知鍊錶中 的第乙個節點,然後將它 插入 到逆置鍊錶的 表頭 即使得他成為逆置鍊錶中 新 的第乙個節...