import networkx as nx def ruta_alternativa_1(g, a, b, c): g2 = g.copy() if c in g2: g2.remove_node(c) if a in g2 and b in g2 and nx.has_path(g2, a, b): ruta = nx.shortest_path(g2, a, b) else: ruta = [] return ruta def ruta_alternativa_2(g, a, b, c): g2 = g.copy() if c in g2: g2.remove_node(c) try: ruta = nx.shortest_path(g2, a, b) except (nx.exception.NetworkXNoPath, nx.exception.NetworkXError, nx.exception.NodeNotFound): ruta = [] return ruta # Tria la solució que vulguis provar # ruta_alternativa = ruta_alternativa_1 ruta_alternativa = ruta_alternativa_2