思路
- 寻找递归结束条件 true——两结点相等
- 寻找递归结束条件false——某一结点为空,或两结点值不相等
- 确定返回值——左子树与左子树相等且右子树与右子树相等 || 左右子树交叉相等
代码
class Solution {
public:
bool flipEquiv(TreeNode* root1, TreeNode* root2) {
if(root1==root2)
return true;
if(root1==nullptr||root2==nullptr||root1->val!=root2->val)
return false;
return flipEquiv(root1->left,root2->left)&&flipEquiv(root1->right,root2->right)||
flipEquiv(root1->left,root2->right)&&flipEquiv(root1->right,root2->left);
}
};