本篇文章为你整理了力扣100 相同的树()的详细内容,包含有 力扣100 相同的树,希望能帮助你了解 力扣100 相同的树。
给你两棵二叉树的根节点 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
解题思路:
要判断两棵树是否相同我们首先想到两棵树要相同首先必须是树的结构必须相同且相同结构的节点上的值必须是相同的这时这两棵树才能是相同的。
代码:
/**
* 判断两棵树是否相同,要判断两颗树是否相同首先如果两棵树的结构不同那么肯定不是相同的
* 其次如果两棵树的结构相同如果相同结构节点的值不同那么这两棵树也不是相同的
public class BooleanSameTree {
//1.首先定义一个表示树的节点类
public static class TreeNode{
public int value;
public TreeNode left;
public TreeNode right;
public TreeNode(int value) {
this.value = value;
//2.定义一个方法判断这两棵树是否相同
public static boolean isSameTree(TreeNode p,TreeNode q){
//2.1如果一个树的根节点为空另一个树的根节点不为空那么肯定是不相同的两棵树返回false
if(p == null ^ q == null){
return false;
//2.2如果两棵树的根节点都为空那么返回true
if (p == null q == null){
return true;
2.3如果两棵树的根节点都不为空,首先我们要判断两颗树的根节点的值是否相同
其次再递归的判断两棵树的左节点是否相同,再递归判断两棵树的右节点是否相同
return p.value == q.value isSameTree(p.left,q.left) isSameTree(p.right, q.right);
以上就是力扣100 相同的树()的详细内容,想要了解更多 力扣100 相同的树的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。