(self, edges)
| 63 | self.roots = set() |
| 64 | |
| 65 | def add_edges(self, edges): |
| 66 | if len(edges) != len(set(edges)): |
| 67 | self.has_duplicate_edges = True |
| 68 | |
| 69 | for u,v in edges: |
| 70 | self.inv_g.add_edge(v,u) # here, the most tricky part!! |
| 71 | |
| 72 | def find_roots(self, v, visited): |
| 73 | ''' @return: False, if failed to find the root, |