20190503-相同的树

发布时间:2019-06-01 20:40:55编辑:auto阅读(1952)

    相同的树

    难度分类

    简单

    题目描述

    给定两个二叉树,编写一个函数来检验它们是否相同。

    如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

    示例 1:

    输入:       1         1

              / \       / \

             2   3     2   3

     

            [1,2,3],   [1,2,3]

     

    输出: true

    示例 2:

    输入:      1          1

              /           \

             2             2

     

            [1,2],     [1,null,2]

     

    输出: false

    示例 3:

    输入:       1         1

              / \       / \

             2   1     1   2

     

            [1,2,1],   [1,1,2]

     

    输出: false

    算法

    采用层序遍历只要结构或值不相等就返回False,使用递归解该题具体思路如下:

    1. 递归的结束条件:当比较的treeNode的值都为None的时候返回True
    2. 递归条件:比较2个treeNode的val,当val相等的时候比较2个TreeNode的左子树和右子树

    考点

    1. 递归
    2. And运算

    代码

    def isSameTree(p, q):
        if p is None and q is None:
            return True
        else:
            if p and q:
                if p.val == q.val:#判断当前树节点的值是否相等
                    return isSameTree(p.left, q.left) and isSameTree(p.right, q.right)
                else:
                    return False#如果不相等,则返回False
            else:
                return False

     

关键字

上一篇: Python基础函数

下一篇: 20190503-汉明距离