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

我如何使用问题沿着二叉树往下走?

滑骞尧
2023-03-14

我正试图建立一个二叉树来执行以下操作:

>

  • 如果我写Y,它将打印左边的子对象。如果我写N,它将打印正确的子对象。

    UI.println("Is it true: " + node + "(Y/N)");
    

    如果它只是一个叶节点,它将只写下答案。

    UI.println(node);
    
  • 共有1个答案

    孙辰阳
    2023-03-14

    你的问题有点含糊,但通常你会这样做:编写一个函数,将树中的一个节点作为参数并提出问题。如果节点是叶子,那么函数打印节点并返回。否则它会提出问题,根据答案,函数递归地在节点的左边或右边调用自己。

    最初,以树的根节点作为参数调用该函数。

    注意,对于非常高的树,这种递归方法可能会导致堆栈溢出。因此,如果您希望得到高树,您可能希望将递归展开到一个简单的循环中。

     类似资料:
    • NowCoder 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印。 例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7 解题思路 使用队列来进行层次遍历。 不需要使用两个队列分别存储当前层的节点和下一层的节点,因为在开始遍历一层的节点时,当前队列中的节点数就是当前层的节点数,只要控制遍历这么多节点数,就能保证这次遍历的都是当前层的节点。 // java public Ar

    • 一、题目 从上往下打印出二叉树的每个结点,同一层的结点按照从左向右的顺序打印。 二、解题思路 这道题实质是考查树的遍历算法。从上到下打印二叉树的规律:每一次打印一个结点的时候,如果该结点有子结点, 则把该结点的子结点放到一个队列的末尾。接下来到队列的头部取出最早进入队列的结点,重复前面的打印操作,直至队列中所有的结点都被打印出来为止。 三、解题代码 public class Test {

    • 本文向大家介绍java编程题之从上往下打印出二叉树,包括了java编程题之从上往下打印出二叉树的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 github:剑指offer编程全部试题  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

    • 这是该问题的有效解决方案: 有人能帮我解释一下这个问题和所有的递归调用吗?现在我不明白解决方案是如何构建树节点的。我目前正在这样处理这个问题。 > ConstructMaximumBinaryTree(int[]nums) int maxIndex=getMaxIndex(nums,0,5)因此maxIndex=3。 树节点根=6。 root.left=helper(nums,0,2),因此max

    • 我正在为分配制作二叉搜索树和AVL树。 尝试向二叉搜索树添加1,000,000个元素时遇到问题,但我可以向AVL树添加键->值对。(AVLTree没有问题) 如果我平衡二叉搜索树,与AVL树没有区别??(如果我平衡二叉搜索树,它变成AVLTREE有什么意义?) 插入15,000个元素后,我从二叉搜索树中得到错误:线程“main”java.lang.StackOverflowError中出现异常 项

    • 我正试图解决这个问题,但我遇到了一些麻烦: 在二进制搜索树(BST)中: 节点左子树中每个节点的数据值小于该节点的数据值。 节点右侧子树中每个节点的数据值大于该节点的数据值。 如您所见,节点(4)位于节点(3)的左侧子树中,尽管4大于3,因此方法应该返回。但是,我的代码返回。 我怎么能控制这个案子?如何检查左/右子树中的所有值都低于/大于根(不仅是直接子树)?