力扣—对称二叉树(C语言)
主要的思想就是,看看其左子树的值和右子数的值相不相等,如果相等就递归后面的左子树和右子树。
/**
* Definition for a binary tree node.
* struct TreeNode {//创建的结构体
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool _isSymmetric(struct TreeNode* root1,struct TreeNode* root2)//判断为左右子树的值是不是相等
{
if(root1==NULL&&root2==NULL)
{
return true;
}
if(root1==NULL||root2==NULL)
{
return false;
}
if(root1->val!=root2->val)
{
return false;
}
return _isSymmetric(root1->left,root2->right)&&_isSymmetric(root1->right,root2->left);//对后续进行递归
}
bool isSymmetric(struct TreeNode* root)
{
if(root==NULL)
{
return true;
}
return _isSymmetric(root->left,root->right);
}