主页 > 软件开发  > 

算法-二叉树-判断二叉树是否相等

算法-二叉树-判断二叉树是否相等

力扣题目:100. 相同的树 - 力扣(LeetCode)

给你两棵二叉树的根节点 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] 内-10^4 <= Node.val <= 10^4

算法如下:

/** * Definition for a binary tree node. * public 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; * } * } */ class Solution { //1.根必须相同, //2.左子树右子树必须相同 public boolean isSameTree(TreeNode p, TreeNode q) { //两边都为空 true,结束 if(p==null&&q==null) { return true; } //一个为空一个不为空的情况 if(p==null&&q!=null||p!=null&&q==null) { return false; } //只判断个数还不行还得判断值 if(p.val!=q.val) { return false; } //左子树和右子树都要为空 return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right); } }

标签:

算法-二叉树-判断二叉树是否相等由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“算法-二叉树-判断二叉树是否相等