要求出二叉树的深度,首先求出左边部分树的深度,然后求出右边部分树的深度。 二叉树的深度为左边部分树的深度和右边部分树的深度中的最大值加1。 考虑自然地用后根扫描的思想来实现
主要步骤如下。
如果二叉树为空,则返回0
求出左边树的深度; 求出右子树深度的左子树、右子树的最大深度加1,返回其值。 //求二叉树深度的算法publicintgetdepth(bitreenodet ) if ) t!=null } { intl depth=get depth (t.lchild ); //左子树的深度intrdepth=getdepth(t.rchild ); //右侧子树的深度return1(ldepthrdepth? lDepth:rDepth; //在左侧子树的深度和右侧子树的深度中最大值1 }返回1}return 0; //求二叉树深度的递归算法publicintgetdepth1(bitreenodet ) if ) t==null ) {return 0; } else if (t.lchild==nullt.rchild==null ) {return 1; } else { return1(getdepth1(t.lchild ) get depth1) t.rchild )? getdepth1(t.lchild ) : get depth1(t.rchild ); }