Map = [[0,2,3],[2,0,1],[3,1,0]] ans = [([float('inf')]*3)for p in range(3)] start = 0 def findfunc(Node,N,distance): if N == 0: if ans[start][Node] > distance: ans[start][Node] = distance return return info = Map[Node] for ind,each in enumerate(info): if each != 0: findfunc(ind,N-1,distance + each) return for i in range(3): start = i M = findfunc(i,2,0)深度优先搜索