1樓:zet
struct Node ;
void removeValue(Node **list, int val)
//測試
int main(int argc, char *argvNode myNode1;
Node *node1 = &myNode1;
node1->val = 1;
Node myNode2;
Node *node2 = &myNode2;
node2->val = 1;
Node myNode3;
Node *node3 = &myNode3;
node3->val = 1;
Node myNode4;
Node *node4= &myNode4;
node4->val = 4;
Node myNode5;
Node *node5 = &myNode5;
node5->val = 5;
node5->next = nullptr;
node1->next = node2;
node2->next = node3;
node3->next = node4;
node4->next = node5;
removeValue(&node1, 5);
return 0;}
2樓:
這類問題有必要給他解答嗎?
這裡好像不是Stackoverflow。就算是Stackoverflow,也不推薦問這類基礎的不能再基礎的「如何」類問題。
3樓:鐘雲龍
struct
GSList
;// 因為 glib 的鍊錶沒有哨位頭節點,因此對鍊錶進行修改會導致鍊錶本身的值發生改變
GSList
*g_slist_remove_link
(GSList
*list
,GSList
*link
)prev
=tmp
;tmp
=tmp
->next;}
return
list;}
4樓:pansz
給個提示,一般用到單鏈表的時候,給的節點一定是前乙個節點,而首節點一般是個哨兵。至於節點直接為空,這個引數是非法的。這都是資料結構書的一些老古董了。
這個面試題,只能說很老。不好說他錯,因為他用的是潛規則。
5樓:陳良喬
這是誰出的面試題?
乙個不完善的方法應該是你的思路
將n之後的節點依次前移,也就是n+1變成n,n+2變成n+1這樣就空出了最後乙個節點,刪掉就可以了
但是這種方法沒法解決n為尾節點的情況
如果n是尾節點,必須修改他的前乙個節點
單鏈表如何得到前乙個節點?求解
如何理解C語言中的識別符號?
Milo Yip 識別符號 cppreference.com識別符號能指代下列型別的實體 物件函式 標籤 struct union 或列舉 結構體或聯合體成員 列舉常量 typedef 名 標號名巨集名 巨集形參名 就是程式設計師可以命名一些東西,不要想得太複雜。 chenc 讀書是為了獲取知識,獲...
C語言中如何定義可移植的結構體?
專案裡經常遇到類似的情況。我們通常都使用巨集來解決。如 struct myStruct 成員變數型別統一使用 S16 16位有符號數 U16 16位無符號數 S32 32位有符號數 U32 32位無符號數 吳才澤 在真正的多平台移植過程中,結構體定義的可移植性反而不太關注,要關注的是程式本身的可移植...
C語言中強制型別轉換是如何實現的?
涇渭漳淮 強制轉換時怎麼實現的?通常是由單獨的CPU指令實現的,也就是硬體實現的。5立方之後是125,125開立方之後是幾?嚴格的數學上應該是5,但實際上計算機有精度的限制,計算結果會有誤差,計算機計算得到的結果可能是4.9999999999999435452340065849之類的,將這個值直接取...