leetcode297
2024-08-31 09:13:22
public class Codec
{
// Encodes a tree to a single string.
public string serialize(TreeNode root)
{
if (root == null)
return ""; Queue<TreeNode> queue = new Queue<TreeNode>();
StringBuilder result = new StringBuilder(); queue.Enqueue(root);
while (true)
{
if (queue.Count() == )
break; int nodesAtLevel = queue.Count();
StringBuilder list = new StringBuilder();
for (int i = ; i < nodesAtLevel; i++)
{
var node = queue.Dequeue();
if (node != null)
{
list.Append(node.val.ToString() + ",");
if (node.left != null)
queue.Enqueue(node.left);
else
queue.Enqueue(null); if (node.right != null)
queue.Enqueue(node.right);
else
queue.Enqueue(null);
}
else
{
list.Append("null" + ",");
} }
result.Append(list.ToString());
}
result.Remove(result.Length - , );
return result.ToString();
} // Decodes your encoded data to tree.
public TreeNode deserialize(string data)
{
if (data.Length == )
return null;
Queue<TreeNode> queue = new Queue<TreeNode>();
var tlist = data.Split(',');
var count = tlist.Length; foreach (var l in tlist)
{
if (l != "null")
{
var t = new TreeNode(int.Parse(l));
queue.Enqueue(t);
}
else
{
queue.Enqueue(null);
}
}
var root = queue.Dequeue();
var list = new List<TreeNode>();
list.Add(root);
while (queue.Any())
{
var temp = new List<TreeNode>();
for (int i = ; i < list.Count; i++)
{
var p = list[i];
var left = queue.Dequeue();
if (left != null)
{
p.left = left;
}
var right = queue.Dequeue();
if (right != null)
{
p.right = right;
}
if (p.left != null)
{
temp.Add(p.left);
}
if (p.right != null)
{
temp.Add(p.right);
}
}
list = temp;
}
return root;
}
}
最新文章
- 解决ie6 fixed 定位以及抖动问题
- eclipse生成doc文件乱码
- Android开发之火星坐标转换工具
- C#操作Excel文件(读取Excel,写入Excel)
- Vim 的补全模式加速器,轻松玩转全部 15 种自动补全模式
- 关于APlayer播放器在打包安装后提示“没有注册类”的解决办法
- Centos 多个mysql数据库
- cpu性能探究 :cache line 原理
- mongodb终端指令
- geotrellis使用(三十九)COG 写入更新
- Android-蓝牙的网络共享与连接分析
- python知识点
- Python实现 Typora数学公式 转 有道云笔记Markdown数学公式
- freenode configuration sasl authentication in weechat
- vue关于html页面id设置问题
- DataSet 读取xml 报错有非法字符
- pcre库
- mac下phpstrom安装主题和主题推荐
- 1) Spring_HelloWorld
- thinkphp模版常量替换机制
热门文章
- L337 Should We Relax About Screen Time?
- mysql慢查询----pt-query-digest详解慢查询日志(linux系统)
- 【oracle入门】Oracle数据库11g企业版主要优点
- Windows+Linux双系统所导致的时间不一致问题的原因及解决方案
- MVVM设计模式加RAC响应式编程
- IO流技术
- 解决Yii2中刷新网页时验证码不刷新的问题
- elasticsearch 拼音检索能力研究
- python2.7安装pip遇到ImportError: cannot import name HTTPSHandle
- 跨源资源共享(CORS)概念、实现(用Spring)、起源介绍