比方說,我有一個列表就像這樣:瞭解加入一個鏈接列表的前
[1]-> [2]-> [3]-> [4]-> [5]->NULL
其中1的值是頭,5尾。 我按照這裏顯示的示例代碼:https://codereview.stackexchange.com/questions/29784/reversing-a-linked-list-and-adding-removing-nodes
我不明白的是這條線(在addtoFront功能)
ptr->value = input;
ptr->next = head; // Point next value to the previous head
head = ptr;
這是我得到的。 ptr->value = input
這一行初始化稱爲指針的節點與給定值
`ptr->next = head;`
該行設置新項的下一個指針(要在前面被插入),到前頭部,所以我們有這樣的事情:
插入[9]到前面,所以:
[9] (new head points to old head)
[9] -> [1] (9's next pointer points to 1)
我不明白的是這行:
head = ptr;
讀這讓我困惑的是,我將其解釋爲設置兩個節點彼此相等,即意義[1]變爲[9]因此,我們有2個節點是[9],[9]->[9]->[2]->[3]->[4]->[5]->NULL
但這顯然不是這種情況。
一旦他們沒有箭頭符號->
,我似乎完全迷失在發生的事情中(對於大多數函數)。任何幫助將非常感激!
'head'總是指向第一個節點,所以當你插入一個新的第一個節點時,你必須指出這一點。 –