为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

饮歌长啸 2022-11-02 16:57:08
我正在研究二叉搜索树。我有一个前一个节点和一个节点。前一个节点位于该节点之前。我需要帮助分配前一个节点。这是我的代码块: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 treeprivate int numElements;private BSTNode<E> first;// post: constructs an empty search treepublic 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;    } }}我会尝试使用递归来解决这个问题,但是放弃这些想法,因为我不确定如何解决这个问题。我已经尝试了几种方法,但都没有奏效。
查看完整描述

1 回答

?
慕工程0101907

TA贡献1887条经验 获得超5个赞

找到了我要找的答案,就是这个


if(prev == null)

        {

            node.next = parent;

        }

        else

        {

            node.next = prev.next;

            prev.next = node;

        }


查看完整回答
反对 回复 2022-11-02
  • 1 回答
  • 0 关注
  • 72 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信