""" Cracking the coding interview: 2.3 """ import sys sys.path.insert(0, '../data_structures') from linked_list_node import ListNode from singly_linked_list import LinkedList def delete_middle_node(node): next_node = node.next.next node = node.next node.next = next_node ll = LinkedList() node_to_delete = ListNode(4) ll.append_to_list(ListNode(1)) ll.append_to_list(ListNode(2)) ll.append_to_list(ListNode(3)) ll.append_to_list(node_to_delete) ll.append_to_list(ListNode(5)) delete_middle_node(node_to_delete) assert not ll.search(node_to_delete)
import sys sys.path.insert(0, '../data_structures') from linked_list_node import ListNode from singly_linked_list import LinkedList def remove_dupes(ll): s = set() n = ll.head while n: s.add(n.data) if n.next: if n.next.data in s: n.next = n.next.next n = n.next return ll 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(4)) ll.append_to_list(ListNode(5)) remove_dupes(ll) ll._print_list()
nxt = n.next if n.data < p: n.next = head head = n else: tail.next = n tail = n n = nxt tail.next = None return head ll = LinkedList() ll.append_to_list(ListNode(1)) ll.append_to_list(ListNode(4)) ll.append_to_list(ListNode(3)) ll.append_to_list(ListNode(10)) ll.append_to_list(ListNode(8)) ll.append_to_list(ListNode(63)) ll.append_to_list(ListNode(28)) ll.append_to_list(ListNode(13)) new_head = partition_linked_list(ll.head, 28) result = [] n = new_head while n: result.append(n.data) n = n.next print(result)