Path planning is one of the most important steps in the navigation and control of Unmanned Aerial Vehicles (UAVs). It ensures an optimal and collision-free path between two locations from a starting point (source) to a destination one (target) for autonomous UAVs while meeting requirements related to UAV characteristics and the serving area. In this paper, we present an overview of UAV path planning approaches classified into five main categories including classical methods, heuristics, meta-heuristics, machine learning, and hybrid algorithms. For each category, a critical analysis is given based on targeted objectives, considered constraints, and environments. In the end, we suggest some highlights and future research directions for UAV path planning.