def test_linked_list_intersection(): shared = LinkedList() shared.add_multiple([1, 2, 3, 4]) a = LinkedList([10, 11, 12, 13, 14, 15]) b = LinkedList([20, 21, 22]) a.tail.next = shared.head a.tail = shared.tail b.tail.next = shared.head b.tail = shared.tail # should be 1 assert intersection(a, b).value == 1
def sum_lists_followup(ll_a, ll_b): # Pad the shorter list with zeros if len(ll_a) < len(ll_b): for i in range(len(ll_b) - len(ll_a)): ll_a.add_to_beginning(0) else: for i in range(len(ll_a) - len(ll_b)): ll_b.add_to_beginning(0) # Find sum n1, n2 = ll_a.head, ll_b.head result = 0 while n1 and n2: result = (result * 10) + n1.value + n2.value n1 = n1.next n2 = n2.next # Create new linked list ll = LinkedList() ll.add_multiple([int(i) for i in str(result)]) return ll
from chapter_02.linked_list import LinkedList def delete_middle_node(node): node.value = node.next.value node.next = node.next.next if __name__ == "__main__": ll = LinkedList() ll.add_multiple([1, 2, 3, 4]) middle_node = ll.add(5) ll.add_multiple([7, 8, 9]) print(ll) delete_middle_node(middle_node) print(ll)