101. 对称二叉树

✅做题思路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);
    }
};
posted @   北原春希  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示