题目: 现在有一个数组,是排好序的。如何将其按照平衡二叉树进行打印。需要按层次遍历。 思路很简单,就是需要确定一个算法去找左子结点与右子结点。 #include <stdio.h> #include <…
标签:树相关算法
(剑指Offer)面试题50:树中两个结点的最低公共祖先
题目: 求树中两个结点的最低公共祖先 思路: 考虑一下几种情况: 1、该树为二叉搜索树 二叉搜索树是排序树,位于左子树点的结点都比父结点小,而位于右子树的结点都比父结点大,只需要从树的根结点开始和两个输入的结点进行比较。…
(剑指Offer)面试题18:树的子结构
题目: 输入两棵二叉树A和B,判断B是不是A的子结构。 二叉树结构定义如下: struct TreeNode{ int val; TreeNode* left; TreeNode* right; }; 思路: 判断二叉树…
(剑指Offer)面试题58:二叉树的下一个结点
题目: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 思路: 考虑中序遍历的过程, 如果当前结点存在右子节点,那么当前结点的下一个…
在MATLAB中修改决策树的精度
我使用fitrtree创建了一个回归树 我想采取CutPoint等参数并降低精度,如下所示: tree.CutPoint=round(tree.CutPoint,5); 但我不能这样做,因为CutPoint被设置为只读,…
(剑指Offer)面试题25:二叉树中和为某一值的路径
题目: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 二叉树结点的定义: struct TreeNode{ int val;…
(剑指Offer)面试题6:重建二叉树
题目: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 假设输入的前序遍历和中序遍历结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,…
(剑指Offer)面试题61:按之字形顺序打印二叉树
题目: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 思路: 按照广度优先遍历来遍历二叉树,但是需要按照之字形来打印,意…
(剑指Offer)面试题39:二叉树的深度
题目: 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 结点的定义如下: struct TreeNode{ int val; TreeNode* …
(剑指Offer)面试题60:把二叉树打印成多行
题目: 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 思路: 很明显,采用广度优先遍历来解决,但因为需要按行输出,所以需要判断每一层的开始和结束,因此需要两个变量,一个表示当前层尚未打印的结点数,一个…
无法折叠/展开材质树(Angular 6)
我正在尝试在我的应用中设置Material Tree.与mat-table f.ex.相比,这相当复杂,但我设法获取数据并显示出来.但是,我只能展示所有名字,而不是扩展/折叠他们的孩子.我收到了错误 cannot rea…
(剑指Offer)面试题23:从上到下打印二叉树
题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路: 很明显,这是一个广度优先遍历。 需要一个队列容器来保存结点,具体操作: 1、将根结点压入队列中,并打印根结点;如果根结点有子结点,将左右子结点依次压…