      "        # Only need to compare the first half            \n",
      "        iterations_to_compare_half = length / 2\n",
      "        curr = self.head\n",
      "        curr_reversed = reversed_list.head\n",
      "        for _ in xrange(0, iterations_to_compare_half):\n",
      "            if curr.data != curr_reversed.data:\n",
      "                return False\n",
      "            curr = curr.next\n",
      "            curr_reversed = curr_reversed.next\n",
      "        return True"
 
</s> remove     "    for i in xrange(0, len(data)):\n",
 </s> add     "    for i in range(0, len(data)):\n", </s> remove     "    for l in xrange(lower, upper + 1):\n",
    "        for u in xrange(lower, upper + 1):\n",
 </s> add     "    for l in range(lower, upper + 1):\n",
    "        for u in range(lower, upper + 1):\n", </s> remove     "    for i in xrange(1, cycles+1):\n",
 </s> add     "    for i in range(1, cycles+1):\n", </s> remove     "    for _ in xrange(n):\n",
 </s> add     "    for _ in range(n):\n", </s> remove     "        self.table = [[] for _ in xrange(self.size)]\n",
 </s> add     "        self.table = [[] for _ in range(self.size)]\n",
    "        for _ in range(0, iterations_to_compare_half):\n",
      "        # Only need to compare the first half            \n",
      "        iterations_to_compare_half = length / 2\n",
      "        curr = self.head\n",
      "        curr_reversed = reversed_list.head\n",
    "        for _ in range(0, iterations_to_compare_half):\n",
      "            if curr.data != curr_reversed.data:\n",
      "                return False\n",
      "            curr = curr.next\n",
      "            curr_reversed = curr_reversed.next\n",
      "        return True"
keep keep keep keep replace keep keep keep keep keep
 Changed xrange to range to be compatible with Python 3. 
linked_lists/palindrome/palindrome_solution.ipynb