如何在非静态方法中描述递归。现在递归不起作用

how to describe a recursion in an non static method. Now the recursion is not working

提问人:viv070788 提问时间:10/24/2023 更新时间:10/24/2023 访问量:31

问:

我想在方法 public void inorder() 中通过二叉树递归。之后,我想给出二叉树中的所有值。但在我的情况下,递归过程不起作用。有人可以帮忙吗?

我尝试使用静态方法执行递归过程,但当然它不起作用。我不知道如何编写与静态方法递归方法不同的递归过程。这可能是个问题。有人可以帮忙吗?

class BinaryNode {
    private BinaryNode leftSon, rightSon;
    private int value;

    public BinaryNode(int v) {
        value = v;
    }

    public boolean contains(int v) { 
        if ( ( leftSon != null) & ( rightSon != null) )
        if ( v == value ) return true;
        else
            if ( v < value ) leftSon.contains( v ) ;
            else rightSon.contains( v );
        return false;
    }

    public void insert(int v) { 
        if ( v != value ) {
            if ( v < value ) {
                BinaryNode links = new BinaryNode( v );
            }  
        } else {
            BinaryNode rechts = new BinaryNode( v );
        }  
    }

    public void inorder() { 
        if ( leftSon != null ) { inorder( ) ; }
        System.out.println( value );
        if ( rightSon != null ) { inorder( ) ; }
        System.out.println( value );
    }
}
Java 递归 方法 binary-tree 非静态

评论

3赞 Jon Skeet 10/24/2023
我希望其中的递归调用使用您正在检查的值,例如 和 - 就像你所做的那样.(我还强烈建议您采用更传统的格式样式,并重命名为甚至......inorderleftSon.inorder()rightson.inorder()containsinorderinOrderprintInOrder
2赞 markspace 10/24/2023
请描述什么是“不起作用”。你得到了什么价值,你期望得到什么?您能否提供调用此代码的代码,其中包含向我们显示错误的示例输入?(在 中,打印两次。那不可能是你想要的。打印一次。inorder()value

答: 暂无答案