普通はそのrootからして全部malloc()しないか?
まあ、しなくてもいいんだが、最後のfree()でrootだけ特別扱いになる。