  This paper focuses on finding a spanning tree of a graph to maximize the
number of its internal vertices. We present an approximation algorithm for this
problem which can achieve a performance ratio $\frac{4}{3}$ on undirected
simple graphs. This improves upon the best known approximation algorithm with
performance ratio $\frac{5}{3}$ before. Our algorithm benefits from a new
observation for bounding the number of internal vertices of a spanning tree,
which reveals that a spanning tree of an undirected simple graph has less
internal vertices than the edges a maximum path-cycle cover of that graph has.
We can also give an example to show that the performance ratio $\frac{4}{3}$ is
actually tight for this algorithm. To decide how difficult it is for this
problem to be approximated, we show that finding a spanning tree of an
undirected simple graph to maximize its internal vertices is Max-SNP-Hard.
