              self.head = node
          else:
              node.next = self.head
              self.head = node
              
      def append(self, data, next_node=None):
          if data is None:
              return
          node = Node(data, next_node)
          if self.head is None:
 
</s> remove             curr_node = curr_node.next </s> add 
        return node
              self.head = node
          else:
              node.next = self.head
              self.head = node
        return node
              
      def append(self, data, next_node=None):
          if data is None:
              return
          node = Node(data, next_node)
          if self.head is None:
keep keep keep add keep keep keep keep keep keep
 Reworked notebook: Added more detail to constraints and test cases.  Reworked algorithm discussion, code, and unit test. 
linked-lists/linked_list.py