判斷樹是否對稱,每次將比對的兩個節(jié)點的左右節(jié)點與右左節(jié)點對比:
l->left==r->right && l->right==r->left,一直遞歸到葉子節(jié)點屏歹。
代碼:
bool isSame(TreeNode* l,TreeNode* r) {
? ? if(l==NULL|| r==NULL)
? ? {
? ? ? ? if(l==NULL&& r==NULL)
? ? ? ? ? ? returntrue;
? ? ? ? else
? ? ? ? ? ? returnfalse;
? ? }
? ? if(l->val==r->val)
? ? {
? ? ? ? returnisSame(l->left, r->right)&&isSame(l->right, r->left);
? ? }
? ? returnfalse;
}
bool isSymmetric(TreeNode* root) {
? ? if(root!=NULL)
? ? ? ? returnisSame(root->left, root->right);
? ? returntrue;
}