Мне нужно найти любую комбинацию чисел в BinaryTree, которая даст мне сумму, которую я ищу. Например, для дерева, имеющего номера: 9,1,6,3,2,5, если система получит сумму 18, она вернет строку «9,1,3,5». Как я могу это сделать, пожалуйста.как искать сумму чисел в двоичном дереве?
Комбинация должны начинаться с корня и вниз в Тропы & метод должны работать в с возвратами рекурсии
код, который я написал это:
public String path(int sum)
{
return path(sum, root);
}
private String path(int sum, Node t)
{
if (t == null)
return "";
sum = sum - t.getNumber();
if (sum == 0)
return t.getNumber() + ", ";
return path(sum, t.getLeftSon()) + path(sum, t.getRightSon());
}
Должен ли он отдать все комбинации? например '6, 3, 2, 5' также применимы. –
Как и 9.1.6 .... – JonH
9, 1, 6 также является возможной комбинацией. Пожалуйста, уточните свое точное требование. Честно говоря, я бы не организовал ваш рекурсивный призыв таким образом. Это отобразило бы только узел, который заставил бы эту сумму пойти на ноль, потому что, когда вы будете рекурсивно, сумма будет фактически выше в каждом из предыдущих вызовов. –