你知道java求二叉树深度的递归算法是什么样的吗? 具体怎么实现呢? 接下来给你看的实例是有关这方面的内容,一起看吧。
要求出树的深度,可以先求出左边子树的深度和右边子树的深度。
用递归算法实现后,递归的出口节点为空,返回值为0。
代码实现: importjava.util.LinkedList;
公共类深度
{
//递归实现1
公共树根(publicintfinddeep ) )。
{
intdeep=0;
if (根!=null )
{
intlchilddeep=find deep (root.left;
intrchilddeep=find deep (root.right;
deep=lchilddeeprchilddeep? lchilddeep 1:rchilddeep 1;
}
返回深度;
}
//递归实现2
公共树根(publicintfinddeep1) )。
{
if (root==空) )。
{
返回0;
}
else
{
intlchilddeep=find deep1(root.left; //求出左子树的深度
intrchilddeep=find deep1(root.left; //求出右边子树的深度
returnlchilddeeprchilddeep? lchilddeep 1:rchilddeep 1; //左边子树和右边子树的深度大的一方加1,就是整棵树的深度
}
}
这还是非常简单的,以前也介绍过java二叉树的深度不使用递归,而是非递归实现,感兴趣的朋友要知道。
请继续关注奇q工具网吧。 更多的java程序代码示例可以共享。
请阅读: