求二叉树深度的递归算法java

KLQ 2020-07-14 09:49:39 java常见问答 7197

你知道java求二叉树深度的递归算法是怎样的吗?具体如何实现呢?下面要给大家带来的实例就是和这个方面相关的内容,一起来看一看吧。

递归算法

为了求树的深度,可以先求其左子树的深度和右子树的深度。

用递归算法来实现,递归的出口就是节点为空,返回值为0。

代码实现:

import java.util.LinkedList;
public class Deep
{
    //递归实现1  
    public int findDeep(BiTree root)
    {
        int deep = 0;
        if (root != null)
        {
            int lchilddeep = findDeep(root.left);
            int rchilddeep = findDeep(root.right);
            deep = lchilddeep > rchilddeep ? lchilddeep + 1 : rchilddeep + 1;
        }
        return deep;
    }
    //递归实现2  
    public int findDeep1(BiTree root)
    {
        if (root == null)
        {
            return 0;
        }
        else
        {
            int lchilddeep = findDeep1(root.left); //求左子树的深度  
            int rchilddeep = findDeep1(root.left); //求右子树的深度  
            return lchilddeep > rchilddeep ? lchilddeep + 1 : rchilddeep + 1; //左子树和右子树深度较大的那个加一等于整个树的深度  
        }
    }

这个还是非常简单的,之前也给大家介绍过java二叉树深度不用递归,非递归实现的相关内容,感兴趣的小伙伴可以去了解一下。

请继续关注奇Q工具网吧,更多java程序代码例子可以为你分享。

推荐阅读:

二叉树转化为森林例子要怎么实现?步骤有哪些?

二叉树遍历例题及答案详解,java入门教程

重建二叉树(思路和实现)