      "\n",
      "* [Clarifying Questions](#Clarifying-Questions)\n",
      "* [Test Cases](#Test-Cases)\n",
      "* [Algorithm](#Algorithm)\n",
      "* [Code](#Code)\n",
      "* [Pythonic-Code](#Pythonic-Code)"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
 
</s> remove     "    def __init__(self, data):\n",
    "        self.next = None\n",
 </s> add     "    def __init__(self, data, next_node=None):\n",
    "        self.next = next_node\n", </s> remove     "    def __init__(self, head):\n",
 </s> add     "    def __init__(self, head=None):\n", </s> remove         node = Node(data)
 </s> add         node = Node(data, next_node) </s> remove     def append(self, data):
 </s> add     def append(self, data, next_node=None): </s> remove 
    def __len__(self):
        curr = self.head
        counter = 0
        while curr is not None:
            counter += 1
            curr = curr.next
        return counter
 </s> add 
    "* [Code](#Code)"
      "\n",
      "* [Clarifying Questions](#Clarifying-Questions)\n",
      "* [Test Cases](#Test-Cases)\n",
      "* [Algorithm](#Algorithm)\n",
    "* [Code](#Code)"
    "* [Code](#Code)"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
keep keep keep keep replace replace keep keep keep keep keep
 Updated Node and LinkedList to allow setting the next pointer on init, or when appending a node.  This is useful for circular linked list problems. 
linked-lists/linked-list.ipynb