题目:
判断两个二叉树是否相同
解题思路:
解二叉树要考虑到用递归
准备二叉树结构体:
import lombok.Data;
@Data
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
}
1,边缘case 都为空则true,只有一个空则为false
private static boolean isEqual(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) return true;
if (root1 == null || root2 == null) return false;
}
2,当某个节点上的数值相等则代表该节点相等
private static boolean isEqual(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) return true;
if (root1 == null || root2 == null) return false;
if (root1.getVal() == root2.getVal()) {
}
}
3,然后需要用递归去比较两个左节点和两个右节点是否相同
private static boolean isEqual(TreeNode root1, TreeNode root2) {
if (root1 == null && root2 == null) return true;
if (root1 == null || root2 == null) return false;
if (root1.getVal() == root2.getVal()) {
return isEqual(root1.getLeft(), root2.getLeft())
&& isEqual(root1.getRight(), root2.getRight());
}
return false;
}