网站建设效益分析,wordpress 软件价格,品牌策划公司属于什么行业,免费的行情网站app题目链接 Leetcode.100 相同的树 easy 题目描述
给你两棵二叉树的根节点 p和 q#xff0c;编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同#xff0c;并且节点具有相同的值#xff0c;则认为它们是相同的。
示例 1#xff1a; 输入#xff1a;p [1,2,3…题目链接 Leetcode.100 相同的树 easy 题目描述
给你两棵二叉树的根节点 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][0, 100][0,100] 内−104Node.val104-10^4 Node.val 10^4−104Node.val104
解法递归
如果 p nullptr q nullptr就返回 true。如果 p nullptr || q nullptr就返回 false。如果 p-val ! q-val就返回 false。
最后再递归的判断 p,q 的左子树 和 右子树是否相同。
时间复杂度:O(n)O(n)O(n)
C代码
class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(p nullptr q nullptr) return true;if(p nullptr || q nullptr) return false;if(p-val ! q-val) return false;return isSameTree(p-left,q-left) isSameTree(p-right,q-right);}
};
Python代码
class Solution:def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) - bool:if p None and q None:return Trueif p None or q None:return Falseif p.val ! q.val:return Falsereturn self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)