0100-Same Tree(相同的树)

Posted 周先森爱吃素

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0100-Same Tree(相同的树)相关的知识,希望对你有一定的参考价值。

这个系列算是出于个人兴趣开的一个新坑吧,最近看到同学刷LeetCode算法题,就想写写那些可以一行Python代码写出来的题目,因此本专栏的文章的解题方式效率不做保证,只为追求“一行的浪漫”。

题目

题解

给你两棵二叉树的根节点 pq ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。本题难度为Easy。

我们可以理解,根据base case,两个二叉树相同的条件为:两棵树都非空+根节点值相同+左子树相同+右子树相同。需要注意特判条件,如果两棵树都是空树那么必然相同;如果两棵树其中只有一棵树为空树那么必不相同。

代码

实现上我们可以通过递归来进行深度优先搜索,实现整个树的判断。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
        return True if not p and not q else bool((p and q) and (p.val == q.val) and self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right))

提交的反馈如下。

以上是关于0100-Same Tree(相同的树)的主要内容,如果未能解决你的问题,请参考以下文章

[leetcode] 100. 相同的树

LeetCode 100. Same Tree (相同的树)

LeetCode每天一题Same Tree(相同的树)

Same Tree,判断两个二叉树是不是相同的树,结构相同,每个节点的值相同

leetcode-----100. 相同的树

LeetCode-树相同的树