More structure. More depth. Better tradeoffs.
The upgrade
By this point, the goal is not to collect random tricks. It is to understand when a data shape changes the problem itself.
01Trees and binary tree thinking
Move beyond lists and learn the recursive structure of a tree: root, children, subtrees, and parent-child relationships. Questions become clearer when you can describe a solution in terms of a node and its descendants.
Leave with: You can reason through tree traversals, root-to-leaf paths, and subtree properties without guessing at implementations.
Study binary trees ->02Heaps and priority queues
Heaps are the data structure behind efficient top-k logic, scheduling, and median tracking. They give you the ability to extract the smallest or largest item in controlled time while keeping the rest of the data organized.
Leave with: You can choose a heap when a single best value matters and decide when a sorted structure is too heavy.
Learn heaps ->03Graphs and traversal
The graph chapter is about modeling relationships: neighbors, dependencies, distances, and connectivity. It combines the patterns from earlier chapters into a more connected, more realistic system.
Leave with: You know when to use BFS, DFS, shortest-path logic, or component counting to answer a graph question.
Explore graph patterns ->04Backtracking and greedy choices
Some problems require exploring valid branches and undoing a choice when it fails. Others can be solved by making the locally best move and proving it stays globally correct. Learn the difference.
Leave with: You can tell when a problem is a search problem versus a choice problem and avoid infinite or incorrect recursion.
Read greedy strategy ->