Given a graph G, can G be drawn in the plane such that no two edges cross? This algorithm is O(|V| + |E|), using depth-first-search in subtle and clever way.