• 101. 对称二叉树


    这题让我做麻烦了,不过我思路也很对。两颗二叉树如果序列化结果事一样的,那么两个完全一样。如果镜像对称,序列化的时候一个先插入左子节点,一个先插入右子节点。有个代码有点傻,我为了能用要一个函数就解决,用了个傻了吧唧的bool变量。

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
     *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
     *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
     * };
     */
    class Solution {
    public:
        vectorserial( TreeNode* node,bool isleft)
        {
            queuebfs;
            vectorret;
            if(node==nullptr)
                return ret;
            bfs.push(node);
            while(!bfs.empty())
            {
                queuebfs_tmp;
                bfs_tmp.swap(bfs);
                while(!bfs_tmp.empty())
                {
                    auto top = bfs_tmp.front();
                    bfs_tmp.pop();
                    if(nullptr==top)
                        ret.push_back("nullptr");
                    else
                    {
                        ret.push_back(to_string(top->val));
                        if(isleft)
                        {
                            bfs.push(top->left);
                            bfs.push(top->right);
                        }
                        else
                        {
                            bfs.push(top->right);
                            bfs.push(top->left);
                        }
                    }
                }
            }
            return ret;
        }
        bool isSymmetric(TreeNode* root) {
            return root==nullptr||serial(root->left,true)==serial(root->right,false);
        }
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
  • 相关阅读:
    安卓期末大作业——日记APP
    SqlServer 备份还原
    python爬虫
    node+pm2安装部署
    Fedora Linux 下使用dnf安装opengl或者叫做mesa
    虚幻引擎:RPC:远端调用
    力扣第321场周赛+acwing第79场周赛补题
    接口请求没有到达后端,被缓存怎么办
    lc[数组]---706.二分查找
    Sass 使用说明
  • 原文地址:https://blog.csdn.net/qigezuishuaide/article/details/128105201