这个二叉树代码在java中是如何工作的?

Posted

技术标签:

【中文标题】这个二叉树代码在java中是如何工作的?【英文标题】:How does this binary tree code works in java? 【发布时间】:2021-09-01 21:06:01 【问题描述】:

这些天我一直在研究数据结构,但是我在理解递归的工作原理方面遇到了一些问题。谁能告诉我这段代码是如何工作的。

public static int height(BinaryTreeNode<Integer> root)
    if (root==null)
        return 0;
    
    int left=height(root.left),right=height(root.right);
    if(left>right)
        return left+1;
    else 
        return right+1;
 

【问题讨论】:

使用调试器并单步执行代码可能比我们试图用文字向您解释更能帮助您理解。此外,几乎所有 CS 本科学位都教授二叉树,因此可能有很多教程、视频、动画等。 【参考方案1】:

所以,算法去叶子节点,当它到达空节点时,它返回0,递归开始从下到上。因为我们想要得到树的最大深度,所以我们必须比较左右分支的深度。对于树的每个下一级,我们应该将深度增加一。

关于这个主题的额外资料one、two和three

【讨论】:

以上是关于这个二叉树代码在java中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

java如何求二叉树中任意两个节点的最大距离

二叉树实现快速排序

输出二叉树树形的数据结构程序代码怎么写

二叉树的java实现 超级简单讲解版!

java实现二叉树的构建以及3种遍历方法(转)

利用JAVA语言,将二叉树封装在一个类中,要求实现二叉树的构造,并实现二叉树的遍历操作。