微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JAVA - 打印节点+二叉搜索树的深度

如何解决JAVA - 打印节点+二叉搜索树的深度

我正在尝试为我的二叉搜索树的每个节点打印所有值和深度。我在想出一种递归计算深度的方法时遇到了麻烦。到目前为止,我有一种仅打印树的每个值的方法。我希望得到一些指导,因为我觉得我让它变得比它应该的更难。

public void printTree( )
    {
        if( isEmpty( ) )
            System.out.println( "Empty tree" );
        else
            printTree( root );
    }

解决方法

我没有看到任何打印树的代码,但除此之外打印功能也不完整。 要打印整棵树,您可以依赖任何树遍历算法。 以下是返回深度并按预定顺序打印树的示例代码。

public static void printTree(Node r) {
    if( r==null )
        return;
    System.out.println(r.value);
    printTree(r.left);
    printTree(r.right);
}

public static int findDepth (Node r) {
    if(r==null)
      return 0;
    return (max(findDepth(r.left),findDepth(r.right))+1);
}

这是基于假设 Node 类定义如下。

class Node {
int value;
Node left;
Node right;

Node(int value) {
    this.value = value;
    right = null;
    left = null;
}

}

您可能需要在单独的函数或 main 中构建用于测试的树。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。