List   ←こいつはmallocで確保したわけじゃないからfreeできない
|
head   ←こいつはmallocで確保してるからfreeできる、けど・・・
|
head   ←こいつからfreeしないとダメ(上からやるとこいつを参照する手段無くなる)


だからListをポインタにして、こいつを動的に確保しただけだと結局意味ねえ