def main(): llist = LinkedList() llist.push(7) llist.push(1) llist.push(3) llist.push(2) llist.push(8) llist.append(10) llist.insert(llist.get_head().get_next(), 5) llist.print_list() print(find_middle(llist)) llist.delete_node(2) llist.print_list() print(find_middle(llist))
fast = dummy for i in range(k): # watch out for k > len of list if fast is None: return None fast = fast.next while fast.next: slow = slow.next fast = fast.next return slow ll = LinkedList() ll.append_to_list(ListNode(1)) ll.append_to_list(ListNode(2)) ll.append_to_list(ListNode(3)) ll.append_to_list(ListNode(4)) ll.append_to_list(ListNode(5)) ll.append_to_list(ListNode(6)) get_kth_to_last(ll, 3) ll.delete_node(6) ll.delete_node(5) ll.delete_node(4) ll.delete_node(3) ll.delete_node(2) assert not get_kth_to_last(ll, 3)