Я работаю над реализацией «вида дна» бинарного дерева. Общее определение состоит в том, чтобы выбрать самый низкий (самый глубокий) узел для каждого горизонтального расстояния (HD). < /P>
Я столкнулся с сценарием, в котором несколько узлов имеют одинаковое горизонтальное расстояние и находятся на одинаковой максимальной глубине. Я хочу подтвердить стандартное правило разбивания связей в таких случаях. < /P>
class TreeNode {
public:
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int val) {
this->val = val;
left = right = NULL;
}
};
TreeNode* root = new TreeNode(1);
root->left = new TreeNode(2);
root->right = new TreeNode(3);
root->left->left = new TreeNode(4);
root->left->right = new TreeNode(5);
root->right->left = new TreeNode(6);
root->right->right = new TreeNode(7);
< /code>
См. двоичное дерево < /p>
для этого дерева общепринятое мнение дна составляет 4 2 6 3 7. < /em> < /p>
Мой конкретный вопрос:
, когда множественные узлы существуют на одном горизонтальном расстоянии и той же глубине, максимальная глубина, это стандартное соглашение, чтобы всегда выбирать самих узлов? Если так, почему? Почему мы не принимаем оба значения, появляющихся на одном и том же HD и глубине?
Подробнее здесь: https://stackoverflow.com/questions/796 ... -hd-max-de
Понимание правила разрыва связей в бинарном виде дна дерева (та же самая глубина HD и максимальная глубина) [Закрыто] ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение