如何将一个节点分配为java中的prev节点?

我正在研究二叉搜索树。我有一个前一个节点和一个节点。前一个节点位于该节点之前。我需要帮助分配前一个节点。


这是我的代码块:


private BSTNode<E> add(BSTNode<E> node, E value, BSTNode<E> parent, BSTNode<E> prev)

{

    if (node == null)

    {

        node = new BSTNode<E>(value);

        node.parent = parent;


       //issue takes place here. 

        node.next = node;

        node = prev;


        this.numElements++;

    }

    else if (node.data.compareTo(value) > 0)

    {

        node.left = add(node.left, value, node , getPrevNode(node));

    }

    else if (node.data.compareTo(value) < 0)

    {

        node.right = add(node.right, value, node, node.parent);

    }

    return node;

}

在这个类里面


public class BinarySearchTree<E extends Comparable<E>>

{

private BSTNode<E> root; // root of overall tree

private int numElements;

private BSTNode<E> first;

// post: constructs an empty search tree

public BinarySearchTree()

{

    this.root = null;

    this.numElements = 0;

}


private static class BSTNode<E>

{

    public E data;

    public BSTNode<E> left;

    public BSTNode<E> right;

    public BSTNode<E> parent;

    public BSTNode<E> next;


    public BSTNode(E data)

    {

        this(data, null, null, null, null);

    }


    public BSTNode(E data, BSTNode<E> left, BSTNode<E> right, BSTNode<E> parent, BSTNode<E> next)

    {

        this.data = data;

        this.left = left;

        this.right = right;

        this.parent = parent;

        this.next = next;

    }

 }

}

我会尝试使用递归来解决这个问题,但是放弃这些想法,因为我不确定如何解决这个问题。我已经尝试了几种方法,但都没有奏效。


饮歌长啸
浏览 73回答 1
1回答

慕工程0101907

找到了我要找的答案,就是这个if(prev == null)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; node.next = parent;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; node.next = prev.next;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prev.next = node;&nbsp; &nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java