做表格的网站网站定制的公司
* 题意说明: * 给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 * 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 * * 示例 1: * 输入:p = [1,2,3], q = [1,2,3] * 输出:true * * 示例 2: * 输入:p = [1,2], q = [1,null,2] * 输出:false * * 示例 3: * 输入:p = [1,2,1], q = [1,1,2] * 输出:false * * 提示: * 两棵树上的节点数目都在范围 [0, 100] 内 * -104 <= Node.val <= 104 * * Related Topics * 树 * 深度优先搜索 * 广度优先搜索 * 二叉树 * * @Date 2023/9/4 9:36 * @Version 1.0
示例:
public class IsSameTree_019 {public static void main(String[] args) {// 测试验证}public static boolean isSameTree(TreeNode p, TreeNode q) {return false;}
}
使用递归的方式来实现:
public class IsSameTree_019 {public static void main(String[] args) {TreeNode p;p = new TreeNode(1);p.left = new TreeNode(2);p.right = new TreeNode(3);TreeNode q;q = new TreeNode(1);q.left = new TreeNode(2);q.right = new TreeNode(3);// 测试验证System.out.println(isSameTree(p,q));}public static boolean isSameTree(TreeNode p, TreeNode q){//首先判断是否俩个节点为空if(p == null && q == null)return true;//判断俩边节点是否对等 返回为falseif((q == null && p != null) || (p == null && q != null))return false;//判断值不相同也返回falseif (p.val != q.val){return false;}elsereturn (isSameTree(p.left,q.left) && isSameTree(p.right,q.right));}static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) {this.val = val;}TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}}
}