Memory when getting object from file

Hello, when I get an histogram from a file

TH1F* h = (TH1F*)f->Get("my_hsisto");

I don’t have to take care to free its memory, since it is done by the TFile. But this behaviour seems to be different from other object, for example TList, TAxis. Is it true? If I get a TList or a TAxis from a file do I need to manually delete them?

TList* l = (TList*)f->Get("my_list");
TAxis* a = (TAxis*)f->Get("my_axis");

...

delete l;
delete a;

Why this difference?