Remover elementos duplicados adjacentes de uma lista

Classe Google Python | Exercício da lista -

Dada uma lista de números, retorne uma lista em que todos os elementos == adjacentes foram reduzidos a um único elemento; portanto, [1, 2, 2, 3] retorna [1, 2, 3]. Você pode criar uma nova lista ou modificar a lista passada.

Minha solução usando uma nova lista é -

def remove_adjacent(nums):
  a = []
  for item in nums:
    if len(a):
      if a[-1] != item:
        a.append(item)
    else: a.append(item)        
  return a

A pergunta até sugere que isso poderia ser feito modificando a lista passada. No entanto, a documentação do python alertou contra a modificação de elementos ao iterar uma lista usando o loop for.

Gostaria de saber o que mais posso tentar além de repetir a lista, para fazer isso. Não estou procurando a solução, mas talvez uma dica que possa me levar na direção certa.

ATUALIZAR

- atualizou o código acima com melhorias sugeridas.

- tentei o seguinte com um loop while usando dicas sugeridas -

def remove_adjacent(nums):
  i = 1
  while i < len(nums):    
    if nums[i] == nums[i-1]:
      nums.pop(i)
      i -= 1  
    i += 1
  return nums

questionAnswers(16)

yourAnswerToTheQuestion