データへのvoid*を含むノード構造体とheadへの参照を保持するリスト構造体を使用したジェネリックリンクリストの実装があります。これが私の問題です。リンクリスト内のノードが、そのvoid*を介して別のリンクリストへの参照を保持している可能性があります。これにより、小さいリストを含む大きいリストを解放すると、メモリリークが発生します。したがって、void *が別のリストを指しているかどうかを確認する方法があるので、それをフォローして解放するか、データだけを解放する方法があるのでしょうか。
構造体の先頭にキーを追加すると、void *を逆参照して、それがリストであることがわかるマジックナンバーを確認できますか?
編集:呼び出し元は、私の関数によって挿入された小さなリストを挿入しません。呼び出し元が、ポインターを保持しているリストだけを複数のリストに再配置することを処理したくありません。