LeetCode-100-相同的树(python)

如题所示:


相同的树

解决树结构的题,理解和运用递归很重要。相同的树指的是:两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

  1. 写递归出口:当p和q都是空时,两种情况。第一种是两棵树都为空树,p, q作为根节点都为空,直接返回True代表这两棵树相同。第二种是p, q不是根节点而是由之前树对应的节点结构和值都相等走到了这一步。
  2. 当p和q都不为空时继续对p和q的左右子树进行递归判断,左子树返回的结果保存在resLeft中, 右子树返回的结果保存在resRight中,返回的是resLeft和resRight的值, 只有二者都为True时才返回True。
  3. 其他情况比如p.val 和q.val不等以及p和q中只有一个为空时都返回False。

总结:解决树相关的题目,递归出口,递归条件,以及对树结构的递归必须要很清楚。
代码如下:

class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        if p is None and q is None:
            return True
        if(p and q) and (p.val == q.val):
            resLeft = self.isSameTree(p.left, q.left)
            resRight = self.isSameTree(p.right, q.right)
            return resLeft and resRight
        else:
            return False
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容