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))
Exemple #2
0
    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)