题目来源:对称的二叉树_牛客题霸_牛客网 (nowcoder.com)
描述
给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如: 下面这棵二叉树是对称的
下面这棵二叉树不对称。
数据范围:节点数满足 0 \le n \le 10000≤n≤1000,节点上的值满足 |val| \le 1000∣val∣≤1000
要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)
备注:
你可以用递归和迭代两种方法解决这个问题
我的代码:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
bool isSame(TreeNode* root1, TreeNode* root2){
if(!root1&&!root2){
return true;
}
if(!root1||!root2){
return false;
}
return root1->val==root2->val && isSame(root1->left, root2->right) && isSame(root1->right, root2->left);
}
bool isSymmetrical(TreeNode* pRoot) {
return isSame(pRoot,pRoot);
}
};