class Node: def __init__(self, v = None, n = []): self.v = v self.n = n self.visited = False def verifier(r): stack = [r] while len(stack) > 0: c = stack.pop(0) for n in c.n: if(c.v == n.v): # meme couleur print("deux voisins de meme couleur") return False if not n.visited: stack.append(n) n.visited = True return True if __name__=="__main__": n1 = Node("gray") n2 = Node("black") n3 = Node("gray") n4 = Node("gray") n5 = Node("black") n6 = Node("gray") n1.n = [n2] n2.n = [n1, n3, n4] n3.n = [n2, n5] n4.n = [n2, n5] n5.n = [n3, n4, n6] n6.n = [n5] print(verifier(n1)) # True