1. 程式人生 > 遊戲 >遊戲科學開發手遊《戰爭藝術》 5月31日國區停運

遊戲科學開發手遊《戰爭藝術》 5月31日國區停運

✅做題思路or感想:

  • 這題是要同時遍歷左子樹和右子樹
    • 遍歷左子樹的外側和右子樹的外側
    • 遍歷左子樹的內側和右子樹的內側
    • 最後判讀是否外側和內側都是對稱的
class Solution {
public:
    bool dfs(TreeNode* left, TreeNode* right) {
        //處理左右節點有空節點的情況,實際上也是處理遞迴到盡頭時的情況,到盡頭是就要觸底反彈,返回值了
        if (left != nullptr && right == nullptr)return false;
        else if (left == nullptr && right != nullptr)return false;
        else if (left == nullptr && right == nullptr)return true;
        else if (left->val != right->val)return false;
        bool leftTree = dfs(left->left, right->right);	//遍歷外側
        bool rightTree = dfs(left->right, right->left);	//遍歷內側
        return leftTree && rightTree;	//看外側和內側是否都對稱
    }
    bool isSymmetric(TreeNode* root) {
        if (root == nullptr)return true;
        return dfs(root->left, root->right);
    }
};