我在查看面试问题时,最近遇到了一个问题,问如何反转一般的二叉树,就像将其从右侧翻转到左侧。 例如,如果我们有以下二叉树: 6 / \ 3 4 / \ / \ 7 3 8 1 反转它将创建 6 / \ 4 3 / \ ...
我在面试中被要求打印二叉树的边界。例如: 1 / \ 2 3 / \ / \ 4 5 6 7 / \ \ 8 9 10 答案将是:1、2、4、8、9、10、7、3。 我已经给出了以下的答案。 ...
我们都知道,如果散列函数被很好地选择,则哈希表对于插入和查找都具有O(1)的时间复杂度。那么,我们为什么要使用二叉搜索树呢?只是因为设计完美散列函数很难吗? 我提出这个问题的原因是:我注意到标准C ++ STL具有用二叉搜索树实现的set和map,但没有哈希(不是指非标准的hash_set,...
我有一颗完美的二叉树,即每个节点都是叶子节点或者有两个子节点,并且所有叶子结点都在同一层级。每个节点在深度优先顺序下有一个索引。 (例如,在具有3级的树中,根节点的索引为0,第一个子节点为1,第一个子节点的第一个子节点为2,第一个子节点的第二个子节点为3,第二个子节点为4,第二个子节点的第一...
我在Coursera算法课程中遇到了这个问题,意识到我不知道如何解决。但是,我对此有一些想法。脑海中浮现出的第一件事是使用优化的位集(如Java的BitSet)来获取映射节点的key -> color。所以,我们只需要为整个树分配一个位集,并将其用作颜色信息源。如果树中没有重复元素,那么...
我最近开始使用 Haskell,很可能只会用一小段时间。只是因为我在上大学的一个课程中被要求使用它来更好地理解函数式编程。 现在我遇到了一个小问题。我正在尝试按广度优先的方式构建它,但我觉得我的条件有些混乱,或者我的条件也可能是错误的。 因此,如果我输入 [“A1-Gate”, “Nort...
我有一篇关于二叉树(非BST)中序遍历(也称为pancaking)的学术课程文本: 中序遍历 在树的外部画一条线。从根节点的左侧开始,沿着树的外部走到根节点的右侧。尽可能靠近树,但不要穿过树。(将树的分支和节点视为坚实的障碍物。)节点的顺序是此行在它们下方经过的顺序。如果您不确定何时“经...
我写了一段代码用于查找二叉树的直径。 需要以下建议: 我是否可以不使用类级别的静态变量来实现这个功能? 这个算法是否可行/有什么建议?public class DiameterOfTree { public static int diameter = 0; public stati...
这个问题困扰我已经有一段时间了。我知道,如果给定N个键以二叉搜索树的形式排列,可以创建的可能树的数量对应于卡特兰数列中的第N个数字。 我一直在试图确定为什么会这样; 无法找到任何尝试直观解释它的东西,我求助于SO的集体知识。我发现了其他计算可能树的数量的方法,但它们似乎不太直观,并且没有提供...