We consider the NP-hard problem of finding a spanning tree with a maximum number of internal vertices. This problem is a generalization of the famous Hamiltonian Path problem. Our dynamicprogramming algorithms for general and degree-bounded graphs have running times of the form O∗ (cn ) (c ≤ 3). The main result, however, is a branching algorithm for graphs with maximum degree three. It only