剑指OFFER 序列化二叉树 弄了半天在剑指OFFER OJ上无法通过(猜测可能是因为剑指OFFER上使用的是char类型的指针,导致有一些编译的不一致问题),同样的代码在leetcode上通过了 代码 采用的先序遍历的方式,先写序列化的代码,就是先序遍历一遍,遇到结点就记录到res中. 反序列化稍 ...
分类:
其他好文 时间:
2020-01-26 22:26:25
阅读次数:
67
剑指OFFER 对称的二叉树 思路 先正向先序遍历一次(先左子树,后右子树),再反向先序遍历一次(先右子树,后左子树).看两次遍历的结果是否相同,如果相同,那么说明是对称的. 分析 节点对称有两个含义, 1.节点的值相等 2.节点在树种的位置对称 如何准确地表示出节点在树中的位置是难点 注意 空结点 ...
分类:
其他好文 时间:
2020-01-18 21:23:45
阅读次数:
65
多叉树的先序遍历。题意很直观,就是给一个多叉树,请你输出先序遍历的结果。跟二叉树的先序遍历一样,还是两种做法,BFS和DFS。两种做法的时间复杂度是O(n),空间复杂度是O(h)。例子, Input: root = [1,null,3,2,4,null,5,6] Output: [1,3,5,6,2 ...
分类:
其他好文 时间:
2020-01-15 09:43:32
阅读次数:
74
题目描述 求一颗树的后序遍历的非递归算法 要求:必须是非递归算法,使用堆栈对象来实现 建树方法采用“先序遍历+空树用0表示”的方法 算法流程: 输入 第一行输入一个整数t,表示有t个测试数据 第二行起输入二叉树先序遍历的结果,空树用字符‘0’表示,输入t行 输出 逐行输出每个二叉树的后序遍历结果 样 ...
分类:
编程语言 时间:
2020-01-12 18:41:25
阅读次数:
91
题目描述 二叉树可以采用数组的方法进行存储,把数组中的数据依次自上而下,自左至右存储到二叉树结点中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点就在数组中用0来表示。,如下图所示 从上图可以看出,右边的是一颗普通的二叉树,当它与左边的完全二叉树对比,发现它比完全二叉树少了第5号结点,所以在数组 ...
分类:
编程语言 时间:
2020-01-11 20:39:35
阅读次数:
93
题目描述 按先序遍历给出一棵二叉树,每个结点都有一个水平位置:左子结点在它左边一个单位,右子结点在右边1个单位。从左向右输出每个水平位置的所有节点的权值之和。 例如:以下二叉树有三个水平位置,从左至右的输出是7,11,3。 输入 测试数据有多组,每组测试数据输入按先序遍历输入一棵二叉树,其中-1代表 ...
分类:
其他好文 时间:
2020-01-11 20:33:06
阅读次数:
105
题目描述 给定一组森林,编写程序生成对应的二叉树,输出这颗二叉树叶结点对应的二进制编码.规定二叉树的左边由0表示,二叉树的右边由1表示。 输入 输入: N B 表示N个树,每结点最多B个分支 第2行至第N+1行,每个树的先序遍历 输出 每行表示一个叶结点对应的二进制编码. 样例输入 3 3 A B ...
分类:
其他好文 时间:
2020-01-11 20:26:49
阅读次数:
74
题目描述 二叉树分别以数组存储方式创建、以先序遍历序列创建。输入二叉树的数组存储、先序遍历结果,判断根据它们创建的二叉树是否是同一棵二叉树。 输入 测试次数t 每组测试数据两行: 第一行:二叉树的数组存储(英文字母表示树结点,#表示空树) 第二行:二叉树的先序遍历结果(英文字母表示树结点,#表示空树 ...
分类:
其他好文 时间:
2020-01-11 20:19:50
阅读次数:
98
题目描述 给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符‘0’表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构 二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径,每条路径的权值等于路径上所有结点的权值和。编程求出二叉树的最大路径权值。如下图所示,共有4个叶子即有 ...
分类:
其他好文 时间:
2020-01-11 20:17:10
阅读次数:
96
题目描述 给定一组森林,编写程序生成对应的二叉树,输出这颗二叉树叶结点对应的二进制编码.规定二叉树的左边由0表示,二叉树的右边由1表示。 输入 输入: N B 表示N个树,每结点最多B个分支 第2行至第N+1行,每个树的先序遍历 输出 每行表示一个叶结点对应的二进制编码. 样例输入 3 3 A B ...
分类:
其他好文 时间:
2020-01-11 20:15:01
阅读次数:
87