题目描述
给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 下面这棵二叉树不对称。 1 / \ 2 2 \ \ 3 3 备注: 希望你可以用递归和迭代两种方法解决这个问题
示例1
输入
{1,2,2}
输出
true
示例2
输入
{1,2,3,3,#,2,#}
输出
false
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root TreeNode类
* @return bool布尔型
*/
bool tryFind(TreeNode* lch, TreeNode* rch){
if(!lch && !rch){
return true;
}
if((!lch && rch) || (lch && !rch)){
return false;
}
return tryFind(lch->left, rch->right)
&& tryFind(lch->right, rch->left)
&& (lch->val == rch->val);
}
bool isSymmetric(TreeNode* root) {
// write code here
if(root == NULL){
return true;
}
return tryFind(root->left, root->right);
}
};