给你一个二叉树的根节点 root
, 检查它是否轴对称。
cpp
//看提示写的
class Solution {
public:
bool isSymmetric(TreeNode*leftnode,TreeNode*rightnode)
{
if(leftnode == nullptr && rightnode == nullptr) return true;
if(leftnode == nullptr || rightnode == nullptr) return false;
return (leftnode->val==rightnode->val)
&&isSymmetric(leftnode->left,rightnode->right)
&&isSymmetric(leftnode->right,rightnode->left);
}
bool isSymmetric(TreeNode* root) {
return isSymmetric(root->left,root->right);
}
};
检测根节点是否对称,需要判断,其左节点与右节点值是否相等,同时其左节点的左节点和右节点的右节点是否对称,以及左节点的右节点和右节点的左节点是否对称。
比较难想到的是,单独写一个函数判断两个节点是否对称