A tree-based shortest path routing algorithm is introduced in this paper. With this algorithm, every network node can maintain a shortest path routing tree topology of the network with itself as the root. In this algorithm, every node constructs its own routing tree based upon its neighbors' routing trees. Initially, the routing tree at each node has the root only, the node itself. As information exchanges, every node's routing tree will evolve until a complete tree is obtained. This algorithm is a trade-off between distance vector algorithm and link state algorithm. Loops are automatically deleted, so there is no count-to- infinity effect. A simple routing tree information storage approach and a protocol data until format to transmit the tree information are given. Some special issues, such as adaptation to topology change, implementation of the algorithm on LAN, convergence and computation overhead etc., are also discussed in the paper.