Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

317
Views
La búsqueda de árbol binario devuelve el número más alto

Estoy tratando de encontrar el auto con el mayor número de premios. Visito cada nodo del árbol y obtengo el tamaño de la matriz y lo comparo con cada nodo. Sin embargo, parece que no puedo devolver el nodo con el valor más alto. ¿Alguien podría mirar mi código y señalar qué tiene de malo? Además, no estoy seguro de si lo estoy devolviendo correctamente desde el método recursivo mostPrizes .

Mi árbol

 public class Car{ private String name; private double key; private ArrayList<Prize> Prizes; public Car left; public Car right; public Car(String name) { this.name = name; } public double getKey() { return key; } public void setKey(double key) { this.key = key; } public ArrayList<Prize> getPrizes() { return Prizes; } public void setPrizes(ArrayList<Prize> Prizes) { this.Prizes = Prizes; }} public class main{ public Car root; public void findWiner() { Car winner; Car a = root; Car b = root; winner = mostPrizes(a,b) public Car mostPrizes (Car car, Car best) { Car temp = best; //visit left node if (car.left != null){ mostPrizes(car.left,best); } //check how many prizes if(car.getPrizes().size() < best.getPrizes().size()){ best = car; } //visit right nodes if (car.right != null ){ mostPrizes(car.right,best); } return best; }}
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El método mostPrzes suyo no es correcto, porque no está asignando lo best de los subárboles izquierdo y derecho al best actual, cámbielo al código a continuación

 public Car mostPrizes (Car car) { if(car== null){ return null; } Car leftMax= mostPrizes(car.left); Car rightMax= mostPrizes(car.right); if(leftMax!=null){ if(car.getPrizes().size()>leftMax.getPrizes().size()){ return node; } else{ return leftMax; } } if(rightMax!=null){ if(car.getPrizes().size()>rightMax.getPrizes().size()){ return node; } else{ return rightMax; } } return car; }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!