按照韩总的说法,递归的问题请大声用语言表达
class Solution {
public:
bool isSymmetric(TreeNode* root) {
// 把一棵树拆成2颗树,判断这棵树的左子树和那棵树的右子树是不是对称的 && 判断这棵树的右子树和那棵树的左子树是不是对称的
// 用语言来说的
if(!root) return true;
if(!root->left && !root->right) return true;
if(!root->left ||!root->right) return false;
return isSymmetric(root->left,root->right);
}
bool isSymmetric(TreeNode* roota, TreeNode* rootb){
if(!roota && !rootb) return true;
if(!roota ||!rootb) return false;
if(roota->val != rootb->val) return false;
return (isSymmetric(roota->left,rootb->right)&&isSymmetric(roota->right,rootb->left));
}
};
网友评论