当前位置: 首页 > 知识库问答 >
问题:

如何修复二叉树实现的StackOverflow错误?[副本]

魏岳
2023-03-14

这是二叉树实现的一个例子。这段代码工作正常。但是我可以在add方法中将根创建为单个一次性节点吗?

public void add(int value) {
 root = addRecursive(root, value);
}
public void add(int value) {
 if (root == null) {
  root= new Node(value);  
  }
// then i add left- and right-leafs recursively
if (value < root.value) {
   root.left = addRecursive(root, value);        
} else if (value > root.value) {
  root.right= addRecursive(root, value); 
 }
}
bt.add(2);
bt.add(1);
bt.add(3);
private Node addRecursive(Node current, int value) {      
 if (current == null) {     
  return new Node(value);
  }    
 if (value < current.value) {
  current.left = addRecursive(current.left, value);     
  } else if (value > current.value) {
    current.right = addRecursive(current.right, value);      
  }  
  return current;
}

共有1个答案

宗政海
2023-03-14

一定是

addRecursive(root.left, value)
addRecursive(root.right, value)

即notroot

 类似资料:
  • 我正在尝试将基于列表的树实现转换为基于数组的实现,其中父项位于第i个索引,左子项位于第2个索引,右子项位于第2i个索引。由于某种原因,转换会导致具有更大数量节点的树的数据丢失。我想知道在实现此功能时需要检查哪些所有边界条件。谢谢!

  • 我正在尝试创建一个无序二叉树。我们如何在无序二叉树中插入Treenode?应该是什么逻辑? 这里的插入是指将节点作为叶子插入。比如,如果我从根节点开始,然后遍历到右边的节点,现在我应该在哪里插入节点。 如果有人引用了UNORDERED二叉树[Not BST]实现,请提供。

  • 问题内容: 我想使用自己的Node类在Java中实现树结构。但是我很困惑如何进行深层复制来复制树。 我的Node类将是这样的: 我是递归的新手,所以有什么我可以学习的代码吗?谢谢! 问题答案: 尝试

  • 我正在尝试用单词构建二叉搜索树。然而,当我使用上面的代码时,我只能访问我的根,根的左、右子项似乎为空。 法典:

  • 本文向大家介绍javascript实现二叉树的代码,包括了javascript实现二叉树的代码的使用技巧和注意事项,需要的朋友参考一下 前言: 二叉树的特点(例图只是二叉树的一种情况,不要尝试用例图推理以下结论) 除了最下面一层,每个节点都是父节点,每个节点都有且最多有两个子节点; 除了嘴上面一层,每个节点是子节点,每个节点都会有一个父节点; 最上面一层的节点(即例图中的节点50)为根节点; 最下

  • 本文向大家介绍Python3 翻转二叉树的实现,包括了Python3 翻转二叉树的实现的使用技巧和注意事项,需要的朋友参考一下 提出问题:翻转一棵二叉树。(除根结点以外) 原始二叉树: 新二叉树: 解题思路:遇见二叉树先想到递归。从最下层的叶子结点开始置换左右子节点,一直置换到到最上层的根结点的左右节点为止。 代码如下( ̄▽ ̄): 时间与空间消耗: 问题来源:https://leetcode-cn