LeetCode 101.对称二叉树 C写法
思路:
将该树一分为二,左子树的左边与右子树的右边比,左子树的右边与右子树的左边比,不相等或者一边为空则不是对称。
代码🔎:
bool _isSymmetric(struct TreeNode* Leftroot,struct TreeNode* Rightroot) { if(Leftroot == NULL && Rightroot == NULL) //两边都为空返回true return true; if(Leftroot == NULL || Rightroot == NULL) //仅一边为空返回false return false; if(Leftroot->val != Rightroot->val) //值不相等返回false return false; return _isSymmetric(Leftroot->left,Rightroot->right) && _isSymmetric(Leftroot->right,Rightroot->left); } bool isSymmetric(struct TreeNode* root) { if(root == NULL) return true; return _isSymmetric(root->left,root->right); }