Introduction: recursive algorithms and linked lists