当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

练题计划 · 力扣 HOT 100

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

困难serialize()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(n),空间 O(n)

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

> 与力扣原题语义一致,此处采用函数式接口,只测试序列化方向。

序列化是将一个二叉树编码成一个字符串,使得该字符串可以被还原成原来的树结构。这里要求编码结果为力扣风格的层序遍历 JSON 字符串:节点值用逗号分隔,null 表示空节点,尾部连续的 null 省略。

例如树 [1,2,3,null,null,4,5] 编码为字符串 "[1,2,3,null,null,4,5]",空树编码为 "[]"。

约定

  • 树中节点数范围 [0, 10^4]
  • -1000 <= Node.val <= 1000

输入

  • root:二叉树根节点(TreeNode)

输出

层序遍历编码后的 JSON 字符串。

示例一

输入:

root = [1, 2, 3, null, null, 4, 5]

输出:

"[1,2,3,null,null,4,5]"

示例二

输入:

root = []

输出:

"[]"

复杂度要求

  • 时间复杂度:O(n)
  • 空间复杂度:O(n)
Loading...

输入

[[1,2,3,null,null,4,5]]

预期输出

"[1,2,3,null,null,4,5]"
自定义用例