二叉数序列化 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列化时通过某种符号表示空节点(#),以 _ 表示一个结点值的结束(value_)。 下图是先序序列化的示意图: 二叉树的反序列化 二叉树的反序列化是指:根据某种遍历顺序得到...

目录 代码 思路 先序遍历 中序遍历 后序遍历 层次遍历 代码 思路 这里记录下非递归的一些思路: 先序遍历 先序遍历循环处理: 1.获取栈顶结点为当前节点 2.访问且右结点和左结点进栈(若有) 中序遍历 中序遍历循环处理: 1.有左结点,进栈,当前结点为左结点,例1,3,5 2.无左结点,访问, 若有右结点,使当前结点为右结点 若无右结点,栈非空前循环退栈直到有右结点的结点为当前结点,也就是1,...

最近陆陆续续在刷树结构这类的问题,非线性结构的问题一直是软肋,尤其是这类问题大量使用递归,对于我这种混了好几年的小白来说不容易理解,因此针对Leetcode中树这一类问题进行了下总结,温故而知新嘛(之前学的都还给老师了…),本文主要讲基本操作的编码实现,同时也希望各位大神批评指正。 二叉树的基本概念具体可以参考:度娘带你走进二叉树 二叉树结构 leetcode中给出了节点类的定义,方...

问题: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。   思路分析  根据二叉树前序遍历的特点(根-左-右),每次读取的第一个值一定是根节点,这样我们可以在中序遍历的序列中找到当前的根节点...