我正在研究二叉搜索樹。我有一個(gè)前一個(gè)節(jié)點(diǎn)和一個(gè)節(jié)點(diǎn)。前一個(gè)節(jié)點(diǎn)位于該節(jié)點(diǎn)之前。我需要幫助分配前一個(gè)節(jié)點(diǎn)。這是我的代碼塊: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;}在這個(gè)類里面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; } }}我會(huì)嘗試使用遞歸來(lái)解決這個(gè)問(wèn)題,但是放棄這些想法,因?yàn)槲也淮_定如何解決這個(gè)問(wèn)題。我已經(jīng)嘗試了幾種方法,但都沒(méi)有奏效。
如何將一個(gè)節(jié)點(diǎn)分配為java中的prev節(jié)點(diǎn)?
飲歌長(zhǎng)嘯
2022-11-02 16:57:08