I have a tree style menu comprised of categories and their sub categories. There are quite a few categories and sub categories in total, so I would like to display the tree collapsed by default, and then allow users to drill down to the specific sub category they are interested in.

However, the problem I have is that I would also like to allow users to visit a main / sub category. Given a menu structure like so:

Main category 1
-sub cat 1
-sub cat 2
--sub sub cat 1
--sub sub cat 2
-sub cat 3
Main category 2

The user should be able to drill down to 'sub sub cat 2' or they should be able to just view 'Main category 1' (for example). I am not sure how this could be implemented. The standard way of organising a tree menu is that the branch / folder nodes are not links themselves, and so clicking them will show the sub categories contained within that folder. But with my desired menu structure, the branch / folder nodes are links, so clicking them would go to that page rather than allowing you to drill down.

One solution is using pop-out sub menus, where each folder shows the sub categories in a pop-out when hovered over. But this won't work well when you have a large depth of sub categories.

I looked at Amazon, and it seems they only allow drilling down one level at a time, which does not seem an optimal solution to me. (Though maybe it is if Amazon are using it).

Does anyone else have any ideas on this?