これはインタビューで私に提起された質問です。ノードへのポインタのみが与えられている場合、単一のリンクされたリストからノードを削除する
"ノードを削除する必要があります。そのノードを削除する関数を作成する必要があります。削除するノードのアドレスのみを入力として受け取ります
次のような回答をしました。次のノードの内容を削除するノードにコピーし、次のノードを削除します。
Deleting a middle node from a single linked list when pointer to the previous node is not available
しかし、インタビュアーが再び私に尋ねた、私が最後のノードのアドレスを渡す場合。私は彼に言った、次はNULLになるので、そのNULLを次のノードへのアドレスと共にデータフィールドにコピーする。これもNULLである。それから彼は私にちょっと理解していないポインタがついているという問題があると私に言った。いくつかの人がこの問題に光を投げてくれますか?これには一般的な解決策がありますか?
更新(2日後):もう少し追加します。リストの最後に特別なノードがないことを考慮してください。最後のノードはNULLを指し、そのノードが入力として与えられている場合、最後のノードの前にNULLを指すようにする方法。それとも不可能なのでしょうか?
簡単に言えば:ノードは、関数への入力として与えられた場合、それを参照するポインタを作成する方法、ポイントコピーする次のノードを指している他の要素が存在する場合
あなたはぶら下がっているポインタの問題は何ですか?またはそれを解決する方法? – amit
どちらも、実際に私はぶら下がっているポインタについても知りたいと思っています。 – King