1. 程式人生 > >面試題:不知道Head(頭節點),想要刪除連結串列中的某一個節點

面試題:不知道Head(頭節點),想要刪除連結串列中的某一個節點

這是一道不是很新的面試題,最近在刷題時遇到了。網上有些說法我覺得不夠嚴謹,在這裡說一下自己的見解。

這裡不考慮雙向連結串列了,因為雙向連結串列是可以很輕鬆做到的。

答案都是比較統一的:

將所要刪除的節點的後一個節點的值copy到當前節點來。刪除後一個節點。

看上去貌似挺對的,思路也挺新穎。那麼,如果我要刪除的這個節點沒有後一個節點呢???

我搜過很多答案,都沒有給出。

以下是個人觀點:

    直接告訴面試官,我覺得應該是沒辦法刪除的……。
    雖然有的人提出,將要刪除節點的記憶體指向null不就可以了嘛,這樣前一個節點指向的是一個
    null。
    這個我查過是不可以的,null在系統中也是一個有地址的區域,也需要前一個節點的指標指
    向這塊區域,但是現在拿不到前一個節點,因此沒有辦法刪除。

所以個人認為:上面的答案僅適用於刪除的非尾節點的節點。這個回答應該是可以的

這裡如果有哪些地方沒有寫好,希望大家可以在評論裡指出我的錯誤。