def deletion_from_list(node_to_delete: ListNode) -> None: if not node_to_delete: return None nachste = node_to_delete.next node_to_delete.data = nachste.data node_to_delete.next = nachste.next
def merge_two_sorted_lists(L1: Optional[ListNode], L2: Optional[ListNode]) -> Optional[ListNode]: result = None resultHead = None print(f"L1 is {L1}") print(f"L2 is {L2}") currL1 = L1 currL2 = L2 while currL1 and currL2: currNode = ListNode() # populate data based on lower if currL1.data <= currL2.data: currNode.data = currL1.data currL1 = currL1.next else: currNode.data = currL2.data currL2 = currL2.next # set the currNode in result list if result == None: result = resultHead = currNode else: result.next = currNode result = result.next # if L1 has reached end then print everything in l2 and viceversa if result != None: if currL1 == None: result.next = currL2 elif currL2 == None: result.next = currL1 else: if currL1 == None: return currL2 elif currL2 == None: return currL1 print(f"Result is {resultHead}") return resultHead
def deletion_from_list(node_to_delete: ListNode) -> None: # TODO - you fill in here. node_to_delete.data = node_to_delete.next.data node_to_delete.next = node_to_delete.next.next return
def deletion_from_list(node_to_delete: ListNode) -> None: next_node_data = node_to_delete.next.data node_to_delete.next = node_to_delete.next.next node_to_delete.data = next_node_data return
def delete_from_list(node_to_delete: ListNode): node_to_delete.data = node_to_delete.next.data node_to_delete.next = node_to_delete.next.next