直接上代码
public class Node{int value;Node left;Node right;public Node(int value){this.value = value;}public void add(Node node){if(node==null){return;}if(node.value<this.value){if(this.left ==null){this.left=node;}else{this.left.add(node);}}else{if(this.right==null){this.right=node;}else{this.right.add(node);} }}//中序遍历public void midShow() {if(this.left != null) {this.left.midShow();}System.out.print(this.toString());if(this.right != null) {this.right.midShow();}} //查找节点public Node search(int value){if(this.value==value){return this;}else if(value<this.value){//查找左子树if(left==null){return null;}//递归调用search()方法return left.search(value);}else{//查找右子树if(right==null){return null;}//递归调用search()方法return right.search(value);}}//查找父节点public Node searchParent(int val) {if(((this.left !=null)&&(this.left.val ==val))||((this.right !=null)&&(this.right.val==val))){return this;}Node node = null;if(this.left !=null) {node = this.left.searchParent(val);if(node !=null)return node;}if(this.right !=null) {node = this.right.searchParent(val);} return node;}
}