@Override
	public void delete(Key key)
	{
		if (isEmpty())
			return;

		for (Node x = first, p = null; x != null; p = x, x = x.next)
			if (key.equals(x.key))
			{
				N--;
				if (x == first)
				{
					x = x.next;
					first = x;
				}
				else
					p.next = x.next;
				return;
			}
	}