static void l2_destroy(struct L2 *list) { do { l3_destroy(list->down); struct L2 *next = list->next; free(list); list = next; } while (list); }
static void l2_destroy(struct L2 *list, int level) { do { if (2 < level) l3_destroy(list->down, level); struct L2 *next = list->next; if (2 == level) free(list); list = next; } while (list); }