2016-05-09 4 views
-3

Учитывая, что двоичное дерево печатает все пути, которые приводят к заданной сумме. Примечание: в этой задаче сумма также может быть как в левом, так и в правом поддереве. Путь не должен начинаться с корня.Учитывая двоичное дерево, напечатайте все пути, которые приводят к заданной сумме

Хотя я обращаюсь к this вопрос о помощи. Тем не менее я не мог найти решение для специального случая, где путь For sum:23, shown path should come as ouput также включает в себя левый и правый поддеревья.

Если заданная сумма 23 алгоритм должен возвращать путь, как показано на рисунке выше.

+0

Два совета. Сначала вы объясните свой вопрос, но не показываете, как вы пытались ответить на него, добавьте это. Во-вторых, прежде чем писать код для алгоритма, вы должны определить алгоритм. Решите проблему теоретически, прежде чем тратить время на использование кода. – Aaron3468

+0

@ Aaron3468 благодарит за советом. Вопрос был задан с неподдельным интересом. Я уточню вопрос. –

ответ

0

Имейте в виду, что ожидание использования сайта заключается в том, что вы показываете свои попытки решить сами. В частности, переполнение стека имеет тенденцию к ядерному понижению, флагом и удалению любых попыток обратиться за помощью, не проявляя настоящих усилий. Я поддерживаю эту тенденцию, потому что большинство людей, впервые прибывающих сюда, хотят переполнения стека для кода для них, а не для поддержки их кодирования.

Перемещение, это очень простой алгоритм, и я предоставляю ему добросовестно, что вы здесь, чтобы учиться, а не для свободного труда.

for each node in tree 
    for each child node 
     add the child to an existing path and add the path to list of candidates 
     if sum(nodes in path) is target sum 
      add path to list of solutions 
     repeat expansion until no child nodes remain