classTreeNode{// membros de acesso de pacoteTreeNodeleftNode;// nó esquerdointdata;// valor do nóTreeNoderightNode;// nó direito// construtor inicializa os dados e os torna um nó-folhapublicTreeNode(intnodeData){data=nodeData;leftNode=rightNode=null;// o nó não tem nenhum filho}// fim construtor sem argumento TreeNode// localiza ponto de inserção e insere novo nó; ignora os valores duplicadospublicvoidinsert(intinsertValue){// insere na subárvore esquerdaif(insertValue<data){// insere novo TreeNodeif(leftNode==null)leftNode=newTreeNode(insertValue);else// continua percorrendo subárvore esquerdaleftNode.insert(insertValue);}// fim do ifelseif(insertValue>data)// insere na subárvore direita{// insere novo TreeNodeif(rightNode==null)rightNode=newTreeNode(insertValue);else// continua percorrendo subárvore direitarightNode.insert(insertValue);}// fim de else if}// fim do método insert}// fim da classe TreeNode// definição da classe TreeclassTree{privateTreeNoderoot;privateintcont;// construtor inicializa uma Tree de inteiros vaziapublicTree(){root=null;cont=0;}// fim construtor sem argumento Tree// insere um novo nó na árvore de pesquisa bináriapublicvoidinsertNode(intinsertValue){if(root==null)root=newTreeNode(insertValue);// cria o nó raiz aquielseroot.insert(insertValue);// chama o método insert}// fim do método insertNode// inicia percurso na pré-ordempublicvoidpreorderTraversal(){preorderHelper(root);System.out.println(" A quantidade de nós: "+cont);}// fim do método preorderTraversal// método recursivo para realizar percurso na pré-ordemprivatevoidpreorderHelper(TreeNodenode){if(node==null)return;System.out.printf("%d ",node.data);// gera saída de dados do nópreorderHelper(node.leftNode);// percorre subárvore esquerdapreorderHelper(node.rightNode);// percorre subárvore direitacont++;}// fim do método preorderHelper// inicia percurso na ordempublicvoidinorderTraversal(){inorderHelper(root);}// fim do método inorderTraversal// método recursivo para realizar percurso na ordemprivatevoidinorderHelper(TreeNodenode){if(node==null)return;inorderHelper(node.leftNode);// percorre subárvore esquerdaSystem.out.printf("%d ",node.data);// gera saída de dados do nóinorderHelper(node.rightNode);// percorre subárvore direita}// fim do método inorderHelper// inicia percurso na pós-ordempublicvoidpostorderTraversal(){postorderHelper(root);}// fim do método postorderTraversal// método recursivo para realizar percurso na pós-ordemprivatevoidpostorderHelper(TreeNodenode){if(node==null)return;postorderHelper(node.leftNode);// percorre subárvore esquerdapostorderHelper(node.rightNode);// percorre subárvore direitaSystem.out.printf("%d ",node.data);// gera saída de dados do nó}// fim do método postorderHelperpublicTreeNodebuscaBin(TreeNoder,longvalor)//metodo que faz busca na arvore binaria{if(r==null)returnnull;if(valor==r.getDado())returnr;if(valor<r.getDado())return(buscaBin(r.getEsq(),valor));elsereturn(buscaBin(r.getDir(),valor));}}// fim da classe Tree
// definição da classe TreeclassTree{privateTreeNoderoot;privateintcont;// construtor inicializa uma Tree de inteiros vaziapublicTree(){root=null;cont=0;}// fim construtor sem argumento Tree// insere um novo nó na árvore de pesquisa bináriapublicvoidinsertNode(intinsertValue){if(root==null)root=newTreeNode(insertValue);// cria o nó raiz aquielseroot.insert(insertValue);// chama o método insert}// fim do método insertNode// inicia percurso na pré-ordempublicvoidpreorderTraversal(){preorderHelper(root);System.out.println(" A quantidade de nós: "+cont);}// fim do método preorderTraversal// método recursivo para realizar percurso na pré-ordemprivatevoidpreorderHelper(TreeNodenode){if(node==null)return;System.out.printf("%d ",node.data);// gera saída de dados do nópreorderHelper(node.leftNode);// percorre subárvore esquerdapreorderHelper(node.rightNode);// percorre subárvore direitacont++;}// fim do método preorderHelper// inicia percurso na ordempublicvoidinorderTraversal(){inorderHelper(root);}// fim do método inorderTraversal// método recursivo para realizar percurso na ordemprivatevoidinorderHelper(TreeNodenode){if(node==null)return;inorderHelper(node.leftNode);// percorre subárvore esquerdaSystem.out.printf("%d ",node.data);// gera saída de dados do nóinorderHelper(node.rightNode);// percorre subárvore direita}// fim do método inorderHelper// inicia percurso na pós-ordempublicvoidpostorderTraversal(){postorderHelper(root);}// fim do método postorderTraversal// método recursivo para realizar percurso na pós-ordemprivatevoidpostorderHelper(TreeNodenode){if(node==null)return;postorderHelper(node.leftNode);// percorre subárvore esquerdapostorderHelper(node.rightNode);// percorre subárvore direitaSystem.out.printf("%d ",node.data);// gera saída de dados do nó}// fim do método postorderHelperprivateTreeNodebuscaBin(TreeNoder,longvalor)//metodo que faz busca na arvore binaria{if(r==null)returnnull;if(valor==r.getDado())returnr;if(valor<r.getDado())return(buscaBin(r.getEsq(),valor));elsereturn(buscaBin(r.getDir(),valor));}// INICIO DA ALTERAÇÃOpubliclongfind(longvalor)//metodo que faz busca na arvore binaria{longresult=0;// Procura a chave na arvoreTreeNodenode=buscaBin(this.root,valor);// Se achar algum nó, obtem o conteúdoif(node!=null){result=node.getDado();}returnresult;}publicstaticvoidmain(String[]args){Treetree=newTree();tree.insertNode(10);tree.insertNode(2);tree.insertNode(30);tree.insertNode(4);tree.insertNode(50);tree.insertNode(62);System.out.println(tree.find(2));}// FIM DA ALTERAÇÃO}// fim da classe Tree
Foi incluido o método find para encontrar o nó desejado e o método main para fazer o teste.
Faltou criar um método (find) que dispare a leitura da àrvore através da passagem do nó inicial (raiz) - no seu caso o root.
Como os nós apenas registram a chave ( data ) o método de busca volta sempre o mesmo valor que está sendo procurado, quando não encontra irá retornar o valor zero.