首先红色和蓝色是轮换对称的,翻转颜色没有问题。 假设我们合法的找到一个答案,一棵树的根节点假设为红色,那么他的儿子节点里一定是有一个红色,其他都是蓝色。蓝色的子树根和父节点没关系了,自身又是一个合法的答案;而红色的那个子树不是,因为他的根是和父节点配对的,但是红色子树的根和他的下面没有关系,因此红色子树的每一个子树又是一个完整的子树。 这样就可以把树分为三类,一类是可以合法染色(记作0),一类是所有子树可以合法染色,但多出来一个根节点被孤立了,给他们上面再加一个点就可以合法染色(记作1)。还有一类则是不能染色(记作-1)。 遍历一个树的每一个子树,如果他的每一个子树都可以返回0,则他自己就是情...