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
