binary-tree

    0热度

    2回答

    我试图打印二叉树的所有路径(根到叶路径),但无济于事。 我的策略是使用递归,其基本情况为either tree is None or tree node is leaf return否则,遍历树的左侧和右侧。 但我找不到保留左右树的方法。 def pathSum(self, root, target, result): if not root: return []

    -2热度

    1回答

    这是二进制搜索树搜索和插入的代码。当我试图通过重复函数Node12 insert2(Node12 curr,int d)检查树的左右节点时。在一行中显示运行时错误。 请帮忙 class bst { class Node12 { Node12 left, right; int data; Node12(int d) { data = d;

    6热度

    1回答

    我想编写一个函数来检查两个二叉树是否相同。 代码如下: bool checkSame(Node* first, Node* second) { // Check if nodes are the same // Check left nodes: checkSame(first->left, second->left) // Check right nodes: c

    0热度

    1回答

    我正在学习考试,目前我在堆。我已经理解如何从一个堆中删除一个节点,但是我可以找到一个我不能使用该算法删除的情况。 问题是我想删除15这是一个叶子和最小堆的最后一个节点。当您删除堆中的节点时,您正在查找堆的最后一个节点,将其替换为删除节点,并检查此节点的子节点是否大于此节点..然后以递归方式继续此操作。 因此(15是最后一个元素,没有孩子),我不知道如何删除它。 1 / \ 9

    2热度

    3回答

    一二进制树的最大深度我从二进制树中创建的元组,它看起来像这样: 元组=(1,(2,(4,5,6),(7,无,8)),(3,9,(10,11,12))) 的树状结构变为通过应用压痕更加清晰: (1, (2, (4, 5, 6 ), (7, None, 8 ) ),

    0热度

    2回答

    如何获得std::set或std::map的根节点?它提供了获取begin()和end()迭代器的功能,但是我没有看到有关获取根文件的任何内容。

    1热度

    1回答

    我正在实现一个BST并且正在执行remove()函数,问题是当我尝试清空节点以删除即当前节点时,它在打印树结构时仍然存在。 class Node<T : Comparable> { var value: T var left: Node<T>? var right: Node<T>? init(_ value:T) { self.value

    -2热度

    2回答

    下面是问题: 给定一个二叉树,写一个函数来获得给定树的最大宽度。树的宽度是所有级别中的最大宽度。二叉树与完整的二叉树具有相同的结构,但有些节点为空。 一个级别的宽度定义为终端节点之间的长度(级别中最左边和最右边的非空节点,其中终端节点之间的空节点也计入长度计算中。 这里是我的代码: public class MaxWidth { public int widthOfBinaryTree(

    0热度

    1回答

    本质上讲,我试图做的是采取与数据定义 binary_tree: number | (symbol binary_tree binary_tree) 二叉树和创造,每个叶片(数字)替换为计数器的号树的新版本。我试图从左到右,然后从上到下这样做,所以使用宽度优先搜索似乎是按顺序访问每个节点的明显选择。但是,我的问题是这样的。我需要积累一个新的二叉树来返回它。因为我们正在访问每个节点,是否有任何可能

    1热度

    1回答

    这是一个算法,我刚才给出了一个测试,我无法弄清楚。有任何想法吗? 您将得到的二进制树的递归符号:一个树的每个节点被表示为一组三个元素:节点 左子树 右子树的 值 因此,一棵树可以写为(value left_subtree right_subtree)。 如果节点不存在,则表示为空集:()。 您的任务是从左到右的顺序获取离树根最远的节点列表。 在一个节点的表示法中,它的值和子树由一个空格字符分隔。