binary-tree相关内容

不了解二叉树最大路径和问题的解决方案

GeeksforGeeks网站已经提供了解决方案有关二叉树的最大路径总和的问题.问题如下: 给出一棵二叉树,找到最大路径总和.路径可能会开始,结束于树中的任何节点. 解决方案的核心如下: int findMaxUtil(节点节点,Res res){如果(节点==空)返回0;//l和r存储从左到右的最大路径总和//分别是root的右子int l = findMaxUtil(node. ..
发布时间:2021-04-02 20:41:01 Java开发

我如何在二叉树中获取父级

如何在此代码中获得“二叉树中的父级"? 我写了这个: 公共类Node{公共字符串状态;左公共节点;公共节点权限;公共节点(字符串s,节点L,节点R){this.state = s;权利= R;左边= L;}公共节点(字符串s){this.state = s;this.Right = null;this.Left = null;}} 并将其编码为一些数据树: 1 2 现 ..
发布时间:2021-04-02 20:40:33 C#/.NET

检查二叉树是否对称的技术

给出一棵二叉树,检查它是否是其自身的镜像(即,围绕其中心对称).问题链接位于此处 递归方法需要遍历树两次. 但是其中一条评论提供了一种解决方案,该解决方案使用了一种称为“空检查"的技术.我不明白为什么这样才能避免两次检查树? 这是他的C ++代码: bool isSymmetric(TreeNode * root){如果(!root)返回true;返回isSymmetric( ..
发布时间:2021-04-02 20:39:44 C/C++开发

在二叉树中打印所有可能的路径

我正在尝试在二叉树中打印所有可能的路径.我能够打印所有从根到叶的路径,但无法弄清楚如何添加从叶到叶的路径.(我正在使用从根到叶的预遍历).因此,基本上: 如果我的树是 6/\4 0/\ \1 3 1 如果要在代码中打印所有路径,则: 6,4,16,4,36,0,11,4,6,0,13,4,6,0,11,4,34,6,04,6,0,1ETC. 有人可以帮我解决这个二叉树吗?非常 ..
发布时间:2021-04-02 20:28:33 Python

以特定格式按级别顺序打印BFS(二叉树)

首先,这个问题不是 push_back 来构建它,然后使用它的循环比std :: deque更有效.由于所有生成都首先发生,然后是所有迭代(或消耗),因此,一个很有趣的替代方法如果受到严格限制,则无论如何都要使用一个列表来表示每个级别,然后使用 .reverse 在开始使用它之前(通过 .pop 调用)-我周围没有大树可以通过测量进行检查,但是我怀疑这种方法仍然会更快(并且实际上比 deque 消 ..

如何以非递归方式获取二叉树中叶节点的数量?

我遇到了一个实践问题,即在不使用递归的情况下获取二叉树中叶节点的数量.我已经到处寻找了一些想法,我已经看到了一些诸如将节点传递到堆栈中的想法,但是当有多个分支时,我看不到如何去做.谁能提供指针? 解决方案 NumberOfLeafNodes(root); int NumberOfLeafNodes(NODE *p) { NODE *nodestack[50]; int to ..
发布时间:2020-09-21 01:02:39 其他开发

二进制搜索树插入不起作用

我正在看书《问题解决与解决》.使用C进行程序设计,以学习C.在本书中,他们给出了构建二进制搜索树的所有必要部分. 但是,我的实现没有用.这是插入部分; void add_to_t(tree_node_t *oldTreep, // input/output - binary search tree tree_element_t ele) // input - el ..
发布时间:2020-09-21 01:01:34 其他开发

随机二叉树中的插入函数

我在C ++中的此二叉树中的插入函数遇到问题.节点已正确插入,直到需要再次在右侧或左侧添加一个节点为止.该功能认为在我已经在那些位置插入节点的情况下,我的左侧或右侧没有任何节点. 这是我的代码: void insert(string data) { srand(time(NULL)); int r; node *aux=head; node *n ..
发布时间:2020-09-21 01:01:29 C/C++开发

递归返回结果

我正在尝试解决一个需要评估二进制表达式树的值的问题. tree_calc(Tree, Eval) 其中Eval应该保存最终结果,而Tree必须采用以下格式: tree(LeftNode, Operator, RightNode) 如果按照上面的表格创建tree函数,如果没有空变量来存储结果,我应该如何将计算结果传递回递归? 我的理解是,总是需要一个额外的变量来存储结果. ..
发布时间:2020-09-21 01:01:28 其他开发

在BST中找到一些带有其水平的数字的前置位

我有一个列表,例如5位数字,每个数字在BST中具有其自己的等级: 列表-> [digit :6 level:1, digit :3 level:2, digit :5 level:3, digit :2 level:3, digit:1 level:4] 如何找到它的预购订单{6,3,2,1,5}? 考虑我上面的列表中有10000位数字. 谢谢 解决方 ..
发布时间:2020-09-21 01:01:05 Java开发

树相等函数未提供正确的输出

我正在编写代码来测试Scheme中两棵树(在数据和结构上)是否相等,并且我必须假定每个节点最多只有两个孩子.我的代码如下: (define (make-tree value left right) (list value left right)) (define (value tree) (car tree)) (define (left tree) (car (cdr ..
发布时间:2020-09-21 01:01:01 其他开发

创建二叉树而不是二叉搜索树

我想创建一个从左到右填充的二叉树. 即,如果要插入1,2,3,则树应该看起来像 1 / \ 2 3 我写了一个插入函数,将节点插入树中.对于第一个节点,一切正常..但是,对于下一个节点(如果我要将4,5作为子级插入2,然后将6,7作为子级插入3),我应该如何在父级(2,3)之间切换? 这是我的插入函数 struct node * Insert(struct ..
发布时间:2020-09-21 01:00:57 其他开发

Leetcode问题以寻找最长的单值路径

问题: 给出一棵二叉树,找到路径中每个节点具有相同值的最长路径的长度.此路径可能会通过根,也可能不会通过根. 两个节点之间的路径长度由它们之间的边数表示. 源 对此的解决方案是: class Solution { public: int max_len = INT_MIN; int longestUnivaluePath(TreeNode* ..
发布时间:2020-09-21 00:59:48 C/C++开发