title: 二叉树怎么判断同构？
desc: 同构的定义如下<img src
topic: 算法
content: 最优做法是hash最小表示法，大致思路就是试着把二叉树用hash值表示出来。对整棵树进行后序遍历，将一个节点的左右子树hash值都求出之后，保证左子树的哈希值恒小于右子树，否则就交换左右子树，然后算该子树的hash值。最后比对根节点hash值即可。该算法的时间复杂度为稳定的ON，如果选的hash函数不太慢的话事实上这题适用的hash可以非常快。为了严谨性应对hash进行防冲突操作，比如开闭散列，但是仍然不会影响复杂度。额外
answerer_tags: 露浓香泛小庭花