實現鍊錶逆序

2021-06-25 07:49:33 字數 910 閱讀 6872

typedefstructlistlist;

這是我做練習題遇到的。編寫乙個函式實現對已有的乙個鍊錶逆序。自己剛開始也不懂,只知道就是要改變指標的指向,但是不知道什麼實現,下面的**也gogle的,然後自己弄明白的。

首先鍊錶之間是結點,每個結點包含資料域和指標域,結點的指標域是指向下乙個結點的資料域的,也就是說它儲存的是下乙個資料域的位址。而鍊錶都會有乙個頭結點,頭結點指向的就是第乙個元素的位址。這就是一般順序情況下鍊錶指標的指向關係。

結合**:

list *list_reverse(list *head)

// head1 = p;

head->

next

= null

;//head->next本來指向的是第乙個元素,現在它作為最後乙個元素,要讓它指向null,否則會一直指向第乙個元素

head1 = p;//讓頭節點指向p,即最後乙個元素的位址。

//如果是head = p;那麼這個head不是實參傳來的head,是重新建立乙個頭節點。而且用這個同名的head之後

// 如果是寫成head = p;和head->next順序不能顛倒,不然就是把新建立的head->next指向null,不指向後面就沒法輸出了。

return head1;

}具體的解釋**後面的解釋都有,自己剛開始的時候也弄不明白,以前資料結構學得不好,所以第一次看的時候就是看不懂,除錯打斷點什麼的也還是看不明白,整個人就處於煩躁之中,覺得怎麼這麼難理解,晚上回去睡了一覺,第二天早上起來又開始分析,終於弄明白了(不知道是不是早上效率比較高還是人的狀態比較好的原因)。現在感覺特容易,那種解決了難題之後的喜悅還是挺好的(也許這就是這行的魅力所在吧),雖然**不是自己寫的,但是理解沒有注釋的**對於還在學語法的自己來說還是有點難。也許以後也會有菜鳥會遇到和我一樣的情況,所以就把解釋寫的多點,希望能幫助以後的初學者。

(鍊錶構建)鍊錶逆序

一直煉表頭結點指標head,將鍊錶逆序。不可申請額外空間 include using namespace std struct listnode int main 實際最終執行的 include using namespace std struct listnode 這個建構函式有點沒看懂,是一種什...

C語言實現鍊錶逆序

寫在前面的是,對於c語言鍊錶逆序的看法 第一感覺是,我擦,這玩意什麼時候能用到啊。殘念。不過在面試中是會經常用到的,如果有需要的小夥伴,可以看看我總結到的一些心得體會吧。嗯,在做鍊錶逆序的時候先做乙個簡單的鍊錶出來 include include typedef int item 定義資料項型別 t...

鍊錶 逆序 例子

typedef struct node node node createlink int n return pheaer node reverselink node pher pheader pher pcurrentnode pheader pnext while pcurrentnode pne...