Проблема суммы путей III

Вам дано бинарное дерево, в котором каждый узел содержит целочисленное значение.

Найдите количество путей, которые в сумме дают заданное значение.

Путь не обязательно должен начинаться или заканчиваться в корне или листе, но он должен идти вниз (переходя только от родительских узлов к дочерним узлам).

В дереве не более 1000 узлов, а значения находятся в диапазоне от -1 000 000 до 1 000 000.

Пример:

root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8
      10
     /  \
    5   -3
   / \    \
  3   2   11
 / \   \
3  -2   1
Return 3. The paths that sum to 8 are:
1.  5 -> 3
2.  5 -> 2 -> 1
3. -3 -> 11

Решение

Для своего решения я использовал два метода, которые вызываются рекурсивно:

  • PathSum он вызывает PathSumFrom с каждым из узлов дерева.
  • PathSumFrom смотрит, сколько путей из данного корня может суммировать искомое число.

Здесь вы можете увидеть производительность моего решения (имейте в виду, что время выполнения может варьироваться в зависимости от сервера):

Вы можете подписаться на меня в LinkedIn.