Главная проблема в link -- то, что используется глобальная переменная graph. Это не очень хорошо.

Лучше было бы сделать 
```python
def build_graph_from_edges(edges):
    graph = {}
    bla-bla-bla
    return graph
```