Вопрос о Найти максимальную глубину дерева - PullRequest
1 голос
/ 20 октября 2019
maxDepth('1') = max(maxDepth('2'), maxDepth('3')) + 1
                               = 2 + 1
                                  /    \
                                /         \
                              /             \
                            /                 \
                          /                     \
               maxDepth('2') = 1                maxDepth('3') = 1
= max(maxDepth('4'), maxDepth('5')) + 1
= 1 + 1   = 2         
                   /    \
                 /        \
               /            \
             /                \
           /                    \
 maxDepth('4') = 1     maxDepth('5') = 1

Недавно я выучил алгоритм нахождения максимальной глубины дерева, который равен

  1. и возвращает 0, если это лист
  2. Получите максимум максимальной глубинылевого и правого поддеревьев и добавьте 1 к нему для текущего узла. max_depth = max (максимальная глубина левого поддерева,
    максимальная глубина правого поддерева) + 1

Однако, для приведенного выше графика, если наше дерево:

1
    2
    3
      4
      5

Предполагается, что максимальная глубина правого поддерева равна 0 на основе алгоритма? Кроме того, максимальная глубина узлов 4 и 5 предполагается равной 0, верно? Пожалуйста, дайте мне знать, какая часть моих рассуждений неверна.

1 Ответ

1 голос
/ 20 октября 2019

maxDepth(3) , maxDepth(4) and maxDepth(5) должно быть zero, поскольку они являются листовыми согласно алгоритму.

                                 1
                              /    \
                            /         \
                          /             \
                        /                 \
                      /                     \
                     2                       3
                   /   \
                 /       \
               /           \
             /               \
           /                  \
          4                    5

maxDepth(3) = maxDepth(4)  = maxDepth(5) = 0
maxDepth(2) = max(maxDepth(4), maxDepth(5)) + 1 = max(0, 0)+1 = 1
maxDepth(1) = max(maxDepth(2), maxDepth(3)) + 1 = max(1, 0)+1 = 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...