当前位置: 首页 > news >正文

Leetcode 297. 二叉树的序列化与反序列化

文章目录

  • 题目
  • 代码(9.30 首刷自解)

题目

在这里插入图片描述

297. 二叉树的序列化与反序列化

代码(9.30 首刷自解)

class Codec {
public:
    string SEP = ",";
    string NULL_STR = "#";
    // Encodes a tree to a single string.
    string serialize(TreeNode* root) {
        if(!root)
            return NULL_STR + SEP;
        string res = to_string(root->val) + SEP;
        res += serialize(root->left);
        res += serialize(root->right);
        return res;
    }

    // Decodes your encoded data to tree.
    TreeNode* deserialize(string data) {
        deque<string> nodes;
        string tmp;
        for(char& c : data) {
            if(string(1,c) != SEP) {
                tmp += c;
            } else {
                nodes.emplace_back(tmp);
                tmp.clear();
            }
        }
        return help(nodes);
    }
    TreeNode* help(deque<string>& nodes) {
        auto front = nodes.front();
        nodes.pop_front();
        if(front == NULL_STR)
            return nullptr;
        auto root = new TreeNode(stoi(front));
        root->left = help(nodes);
        root->right = help(nodes);
        return root;
    }
};

相关文章:

  • 【LeetCode】滑动窗口妙解无重复字符的最长子串
  • 华为智能高校出口安全解决方案(2)
  • Ubuntu Qt 5.15.2 支持 aarch64
  • 【李沐深度学习笔记】损失函数
  • C++与数据结构面经(重中之重)
  • 83、SpringBoot --- 下载和安装 MSYS2、 Redis
  • 【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?
  • 数据响应式原理
  • Java on Azure Tooling 8月更新|以应用程序为中心的视图支持及 Azure 应用服务部署状态改进
  • Redis与Mybatis
  • 批量删除wordpress文章修订版本/自动草稿残留数据(3种方法)及四种方法禁用WordPress文章历史修订/自动保存/自动草稿功能
  • [JAVAee]MyBatis
  • MySQL数据类型与表单创建
  • HTTP协议
  • Docker(三)、Dockerfile探究
  • 【C++】单例模式
  • 程序员的快乐如此简单
  • Hadoop分布式文件系统
  • celery分布式异步任务队列-4.4.7
  • SpringMVC+统一表现层返回值+异常处理器
  • 张九思任电子科大副教授,曾以学生身份入选爱思唯尔全球前2%顶尖科学家
  • 85岁眼科专家、武汉大学人民医院原眼科主任喻长泰逝世
  • 海南一男子涨潮时赶海与同伴走散,警民协同3小时将其救上岸
  • 再现逆转!蒯曼击败伊藤美诚晋级澳门世界杯女单决赛
  • 黄金投资热,成了“财富焦虑”的贩卖场
  • 夜读丨“看看世界”本身就是一种意义