算法判断两颗二叉树是否相似
时间: 2023-10-26 09:05:07 浏览: 218
判断两棵二叉树是否相似
判断两棵二叉树是否相似,需要比较它们的结构和节点值。具体方法可以使用递归实现:
1. 如果两棵树都为空,则它们相似,返回 true。
2. 如果两棵树中有一棵为空,另一棵不为空,则它们不相似,返回 false。
3. 比较两棵树的根节点的值,如果不相等,则它们不相似,返回 false。
4. 递归比较两棵树的左子树和右子树,如果都相似,则它们相似,返回 true,否则返回 false。
下面是使用 Java 实现的代码:
```java
public boolean isSimilar(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) {
return true;
}
if (root1 == null || root2 == null) {
return false;
}
if (root1.val != root2.val) {
return false;
}
boolean left = isSimilar(root1.left, root2.left);
boolean right = isSimilar(root1.right, root2.right);
return left && right;
}
```
其中,TreeNode 表示二叉树节点的数据结构,包含 val、left、right 三个属性。
阅读全文