题目#100.相同的数
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例 1:
示例 1示例 2:
示例 2示例 3:
示例 3题目分析
判断两个树是否相同,只需要判断根节点是否值相同,左右子节点是否相同即可,而左右子节点可以使用递归的形式进行判断,所以代码如下:
代码
fun isSameTree(p: TreeNode?, q: TreeNode?): Boolean {
if (p == null && q == null) return true
if (p == null || q == null) return false
return p.`val` == q.`val` && isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
}
代码分析
对于判断两个树是否相同,有三种情况可以分情况讨论。
- 两个树同时为空,则两个树相同
if (p == null && q == null) return true
- 两个树有且仅有一个为空,则两个树不同
if (p == null || q == null) return false
- 否则判断根节点值以及左右子树
return p.`val` == q.`val` && isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
网友评论