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