C# Errors when making a targeting script

Here’s the script (Errors at bottom)

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

public class Targetting : MonoBehaviour {
public List targets;
public Transform selectedTarget;

private Transform myTransform;

// Use this for initialization
void Start () {
	targets = new List<Transform>();
	selectedTarget = null;
	myTransform = transform;
	
	AddAllEnemies();
}

public void AddAllEnemies()
{
	GameObject[] go = GameObject.FindGameObjectsWithTag("Enemy");
	
	foreach(GameObject enemy in go)
		AddTarget(enemy.transform);
}

public void AddTarget(Transform enemy)
{
	targets.Add(enemy);	
}


private void SortTargetsByDistance()
{
	targets.Sort(delegate(Transform t1, Transform t2) { 
		return Vector3.Distance(t1.position, myTransform.position).CompareTo(Vector3.Distance(t2.position, myTransform.position)); 
		});
}


private void TargetEnemy()
{
	if(selectedTarget == null)
	{
		SortTargetsByDistance();		
		selectedTarget = targets[0];
	}
	else
	{
		int index = targets.IndexOf(selectedTarget);
		
		if(index < targets.Count - 1);
		{
			index++;
		}
		else
		{
			index = 0;
		}
		selectedTarget = targets[index];
	}
	
}

// Update is called once per frame
void Update () {
	if(Input.GetKeyDown(KeyCode.Tab))
    {
		TargetEnemy();
	}
}

}

The errors unity gave me were:

Assets/Scripts/Targetting.cs(53,25): warning CS0642: Possible mistaken empty statement

Assets/Scripts/Targetting.cs(57,28): error CS1525: Unexpected symbol `else’

Assets/Scripts/Targetting.cs(67,14): error CS0116: A namespace can only contain types and namespace declarations

Assets/Scripts/Targetting.cs(73,1): error CS8025: Parsing error

On line 45, you have a ‘;’ at the end of the line that should be deleted. With the ‘;’, the compiler is interpreting the ‘if’ as a single empty statement, which is not what you want.
Also the statement at the top of the file that reads:

public List targets;

should be:

public List<Transform> targets;