Cracking the Coding Interview Arrays and Strings Linked Lists Stacks and Queues Trees and Graphs Bit Manipulation