This paper presents a new algorithm for the K shortest simple path problem in a network with non-negative edge lengths. After a shortest path and a shortest arborescence tree are produced with Dijkstra algorithm, we calculate the incremental length of the shortest detouring path through each arc which is not belonged to the shortest arborescence tree. A length of the shortest detouring path through the inward are to the parent path is the sum of the length of the inward arc, the shortest distance from the origin to its head vertex and the distance from its tail vertex to the destination on the parent path. The second shortest path is the shortest detouring one among the generated detouring paths which pass through inward arcs to every vertex of the shortest path. The third shortest path is the shortest detouring one among the generated detouring paths which pass through inward arcs to every vertex of the second shortest path and the other detouring paths generated from the shortest path. Before a shortest detouring path is selected, we check the possibility of a loop in the path, and select a loopless one. This procedure of generating the detouring paths and rearranging the set of detouring paths in the ascending order of the detouring length is repeated till the K th shortest path is determined. This algorithm can be applied to a problem of generating the detouring paths in the navigation system for ITS and also in the vehicle routing problems and transportation problems.