遊戲科學開發手遊《戰爭藝術》 5月31日國區停運
阿新 • • 發佈:2022-03-24
✅做題思路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); } };