101. 對稱二叉樹

saulstavo發表於2024-11-27

問題描述

給你一個二叉樹的根節點 root , 檢查它是否軸對稱。

分析

由於該題不僅要考慮資料的軸對稱,還要考慮結構的軸對稱,例如
101. 對稱二叉樹
所以需要兩個方向的遞迴同時進行,過程中比較對稱結點的值是否相等。

class Solution {
public:
    bool solve(TreeNode* l_root, TreeNode* r_root) {
        bool x, y;
        if (l_root == nullptr && r_root == nullptr) {
            return true;
        }
        if (l_root == nullptr || r_root == nullptr) {
            return false;
        }
        if (l_root->val != r_root->val) {
            return false;
        }
        x = solve(l_root->left, r_root->right);
        y = solve(l_root->right, r_root->left);
        if (x && y) {
            return true;
        }
        return false;
    }
    bool isSymmetric(TreeNode* root) {
        return solve(root, root);
    }
};

相關文章