序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。

1.需求

请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。

示例:

2.层序遍历解法

  • 序列化
  • 反序列化
# Definition for a binary tree node.
class TreeNode(object):def __init__(self, x):self.val = xself.left = Noneself.right = Noneclass Codec:def serialize(self, root):"""序列化"""res = []q = [root]while q:node = q.pop(0)if node:res.append(node.val)q.append(node.left)q.append(node.right)else:res.append(None)return res  # [1, 2, 3, None, None, 4, 5, None, None, None, None]def deserialize(self, data):"""反序列化"""if not data:return Noneroot = TreeNode(data[0])queue = [root]index = 1while queue:node = queue.pop(0)if data[index] is not None:node.left = TreeNode(data[index])queue.append(node.left)if data[index+1] is not None:node.right = TreeNode(node.right)queue.append(node.right)index += 2return root

leetcode第297——二叉树的序列化与反序列化(层次遍历)相关推荐

  1. leetcode:297. 二叉树的序列化与反序列化

    题目来源 leetcode 题目描述 . struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), le ...

  2. 【LeetCode】【HOT】297. 二叉树的序列化与反序列化(BFS)

    [LeetCode][HOT]297. 二叉树的序列化与反序列化 文章目录 [LeetCode][HOT]297. 二叉树的序列化与反序列化 package hot;import java.util. ...

  3. Java实现 LeetCode 297 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得 ...

  4. 【leetcode】二叉树,297二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 前言 题目难度:困难 一.题目描述 二.前序遍历解法 三.后序遍历解法 四.中序遍历解法 五.层级遍历解法 前言 如果你看过下面这几篇,那这道题应该对你来说信手拈来 ...

  5. LeetCode 297. 二叉树的序列化与反序列化 | Python

    文章目录 297. 二叉树的序列化与反序列化 题目 解题思路 代码实现 实现结果 总结 297. 二叉树的序列化与反序列化 题目来源:力扣(LeetCode)https://leetcode-cn.c ...

  6. LeetCode Java刷题笔记—297. 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 请实现两个函数,分别用来序列化和反序列化二叉树.这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化 ...

  7. golang力扣leetcode 297.二叉树的序列化与反序列化

    297.二叉树的序列化与反序列化 297.二叉树的序列化与反序列化 题解 代码 297.二叉树的序列化与反序列化 297.二叉树的序列化与反序列化 题解 题目:给你一个二叉树,序列化从一个string ...

  8. LeetCode 297. 二叉树的序列化与反序列化(前序遍历层序遍历)

    文章目录 1. 题目 2. 解题 2.1 前序遍历 2.2 层序遍历 1. 题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过 ...

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

    题目链接: 力扣https://leetcode.cn/problems/serialize-and-deserialize-binary-tree/ [分析]序列化的时候很简单,任意的一种二叉树遍历 ...

最新文章

  1. 王飞跃:平行汽车到平行驾驶,从“功能汽车”到“智能汽车”
  2. 露天下的云端信标组比赛
  3. 安装sql server 2016 always on配置dtc支持时遇到的问题
  4. Nginx配置X-Forwarded-Proto
  5. ARM MOV和 LDR指令关系
  6. python 封装函数_python:函数数据封装
  7. 转载:vb导出excel的方法
  8. 4个空格和一个tab有什么区别_为什么有时候会放屁连连?这4个原因,一个都别放过...
  9. dedecms v5.7 图片集“图集内容”无法调用的解决办法
  10. 快速上云(手把手教你把项目同步上云)
  11. USB驱动——键盘驱动(控制传输)
  12. C语言:最小数与数列第一个数交换
  13. 2、Class和Subclass
  14. HFSS学习记录——0. HFSS软件安装(ANSYS Electromagnetics Suite 2023 R1)
  15. 讯飞机器翻译质量评估挑战赛Baseline(PaddlePaddle)
  16. html网页中圆角边框的编写,Html实现边框圆角的实例详解
  17. [最新] Android 代码规范大全(Android开发速看),2021年最新大厂Android面试笔试题目
  18. 关于版权声明的写法 (转)
  19. 风速风向 UV 相互转换
  20. Asp.net WebMatrix 学习笔记

热门文章

  1. 【前端系列教程之HTML5】02_HTML文档结构
  2. AC自动机讲解超详细
  3. GeoServer导入ArcGIS的shp文件样式丢失:自定义Style
  4. 秒懂:kotlin 集合操作fold vs reduce
  5. ssm+JSP计算机毕业设计疫情隔离室管理系统0c77v【源码、程序、数据库、部署】
  6. 1052 Linked List Sorting (25 分)
  7. 《android开发艺术探索》读书笔记(二)--IPC机制
  8. 快递100 官方api技术文档 错误 更新 快递公司网络异常 解决方法
  9. python编程与下位机通讯_如何使用Python开发串口通讯上位机(一)
  10. 如何利用openwrt自启动实现4G路由器功能?