网络异常,图片无法展示
|
题目地址(100. 相同的树)
题目描述
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入:p = [1,2,3], q = [1,2,3] 输出:true 示例 2: 输入:p = [1,2], q = [1,null,2] 输出:false 示例 3: 输入:p = [1,2,1], q = [1,1,2] 输出:false 提示: 两棵树上的节点数目都在范围 [0, 100] 内 -104 <= Node.val <= 104
思路
采用递归的方式来监测
代码
- 语言支持:Python3
Python3 Code:
# 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: if not p and not q: return True if not p or not q: return False leftRes = self.isSameTree(p.left,q.left) rightRes = self.isSameTree(p.right, q.right) if p.val == q.val and leftRes and rightRes: return True else: return False
复杂度分析
令 n 为数组长度。
- 时间复杂度:O(n)O(n)
- 空间复杂度:O(logn)O(logn)