Cormen's Introduction to Algorithms and Data Structures is widely considered a most great book on the topic in question.
Even when googling "best algorithms and data structures book", first few links place it at the top of their lists. Some even mention that it's sometimes called "the bible of algorithms".
That book covers not only the basics, but also topics above the "standard" level of Leetcode exercises. I highly recommend starting with it. After you finish it, I believe the best course of action is to reserach individual topics that cought your interest.
There is one more thing I would like to touch on. A mistake some people make is trying to read those kind of books from cover to cover and only afterwards jump into coding. This approach is, most of the time, very inefficient. Once you learn an algorithm or a data structure, try using it, implementing it, and tweakig it. Experiment with the knowledge you are gathering on your way, rather than trying to isolate it.