def ll_list_all(start: dict | None) -> list: items = [] node = start while node is not None: items.append((node['name'], node['phone'])) node = node['next'] items.sort(key=lambda x: x[0]) return items def ll_delete(start: dict | None, key: str) -> dict | None: if start is None: return None if start['name'] == key: return start['next'] ptr = start while ptr['next'] is not None: if ptr['next']['name'] == key: ptr['next'] = ptr['next']['next'] return start ptr = ptr['next'] return start def ll_find(start: dict | None, key: str) -> str | None: ptr = start while ptr is not None: if ptr['name'] == key: return ptr['phone'] ptr = ptr['next'] return None def ll_insert(start: dict | None, key: str, value: str) -> dict: if start is None: return {'name': key, 'phone': value, 'next': None} ptr = start while True: if ptr['name'] == key: ptr['phone'] = value return start if ptr['next'] is None: ptr['next'] = {'name': key, 'phone': value, 'next': None} return start ptr = ptr['next']