[검지 Offer] 대칭적인 두 갈래 나무(귀속)

제목 링크


제목 설명


두 갈래 나무가 대칭적인지 아닌지를 판단하는 함수를 실현하세요.만약 두 갈래 나무가 이 두 갈래 나무와 같은 거울이라면 대칭으로 정의하십시오.
사고방식: 두 갈래 나무가 대칭적인지, 즉 좌우 나무가 대칭적인지 판단하면 좌우 나무를 비교하면 된다.
코드:
/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};
*/
class Solution {
public:
    bool isSymmetrical(TreeNode* pRoot) {
        return isSymmetrical(pRoot,pRoot);
    }

    bool isSymmetrical(TreeNode* pRoot1,TreeNode* pRoot2) {
        if(pRoot1 == nullptr && pRoot2 == nullptr) {
            return true;
        }
        if(pRoot1 == nullptr || pRoot2 == nullptr || pRoot1 -> val != pRoot2 -> val) {
            return false;
        }
        return isSymmetrical(pRoot1->left,pRoot2->right) && isSymmetrical(pRoot2->right,pRoot1->left);
    }

};

좋은 웹페이지 즐겨찾기