gpt4 book ai didi

java - 在二叉树中寻找同构性质的算法

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:58:13 28 4
gpt4 key购买 nike

检查两个二叉树本质上是否同构的算法是什么?我的代码-

boolean isIsomorphic(Root t1 , Root t2){
if(t1==null || t2==null){
return false;
}

if((t1.value == t2.value) && (isIsomorphic(t1.left,t2.right) && isIsomorphic(t1.right,t2.left))) {
return true
}

return false;
}

最佳答案

wikipedia article for 'isomorphism'说“如果两个对象是同构的,那么同构保留的任何属性,并且对其中一个对象为真,对另一个对象也为真。”

所以你的问题需要说明你是否关心形状、数据、性能等。

如果您关心用于搜索的二叉树的行为,则您的算法不正确。参见 What does it mean for two binary trees to be isomorphic?

检查同构的最简单方法是按顺序遍历两棵树,检查每一步后的值。

另一方面,如果您关心形状 数据,@amits 修复将为您解决。但请注意,您也可以将其称为完全匹配。

最后,如果你只关心形状,那么你需要放弃检查 t1.value == t2.value

关于java - 在二叉树中寻找同构性质的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10353140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com