How do I fix a missing object reference in my aim script?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Aim : MonoBehaviour
{
List enemies;
GameObject item;
public GameObject self;
int index;

void Start()
{
	Select();
}

void OnTriggerEnter2D(Collider2D collision)
{
	if (collision.gameObject.tag == "Enemy")
	{
		enemies.Add(collision.gameObject);
	}
}

void FixedUpdate()
{
	if (item != null && item != self)
	{
		float angle = Mathf.Atan2(item.transform.position.y - transform.position.y, item.transform.position.x - transform.position.x) * Mathf.Rad2Deg;
		Quaternion targetRotation = Quaternion.Euler(new Vector3(0, 0, angle));
		transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, 2 * Time.deltaTime);
	}
	else if (item == null)
	{
		enemies.Remove(item);
		Select();
	}
	else
		return;
}

void Select()
{
	if (enemies.Count != 0)
	{
        index = Random.Range(0, enemies.Count);
        item = enemies[index];
    }
	else
	{
		item = self;
	}
}

void OnTriggerExit2D(Collider2D collision)
{
	enemies.Remove(collision.gameObject);
}

This pulls up NullReferenceException at lines 44 and 35. I have tried everything, but I cannot get it to work. Does anyone know why this is?

You have to initialize your list, actually it’s not declared right either you have:

List enemies;

Should be:

 List<T> enemies;

where T is the type of your list, then it must also be initialized:

  enemies=new List<T>();

Which you can do in the same line like this:

  List<T> enemies=new List<T>();

Lists must be initialized before they can be used.