当前位置 博文首页 > 中流击水,浪遏飞舟:剑指 Offer 28. 对称的二叉树
递归目的:
判断是否镜像,是true,否false;
递归终止条件:
1.左右空:true;
2.左右值不等,或者左右有一个空:false;
继续递归:
左左和右右&&左右和右左。
class Solution {
public:
bool issym(TreeNode* l,TreeNode* r){
if(!l&&!r){
return true;
}
if(!l||!r||l->val!=r->val){
return false;
}
return issym(l->left,r->right)&&issym(l->right,r->left);
}
bool isSymmetric(TreeNode* root) {
if(!root){
return true;
}
return issym(root->left,root->right);
}
};
对每一层的结点进行层次遍历的判断,不是所有结点进行层次遍历判断!!!前者只需要判断这一层是否镜像,后者难以对拥有多少个结点判断且耗时长。
cs