Some critical point theorems and applications