美文网首页
100.相同的数

100.相同的数

作者: qiHuang112 | 来源:发表于2020-01-07 08:41 被阅读0次

    题目#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)

    相关文章

      网友评论

          本文标题:100.相同的数

          本文链接:https://www.haomeiwen.com/subject/eqlkactx.html