Time: O(n)
Space: O(h)
Please open Telegram to view this post
VIEW IN TELEGRAM
270. Closest Binary Search Tree Value
Company:
Верните значение в BST, которое ближе всего к target. Если есть несколько ответов, верните наименьший
#leetcode270 | #easy #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(h)
Space: O(1)
Please open Telegram to view this post
VIEW IN TELEGRAM
863. All Nodes Distance K in Binary Tree
Company:
Верните список значений всех узлов (в любом порядке), которые находятся на расстоянии k от целевого узла
#leetcode863 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Time: O(n)
Space: O(n)
В итоге получаем эффективный алгоритм за O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
314. Binary Tree Vertical Order Traversal
Company:
Если два узла находятся в одной строке и столбце, порядок должен быть слева направо
#leetcode314 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(n)
В реализации bfs используем очередь Queue<Pair>, где Pair — это структура, содержащая сам узел и его номер столбца. Каждый раз, когда мы извлекаем узел из очереди, мы добавляем его значение в список соответствующего столбца в HashMap и помещаем в очередь его левого и правого детей с обновлёнными номерами столбцов.
private static class Pair {
TreeNode node;
int column;
public Pair(TreeNode node, int column) {
this.node = node;
this.column = column;
}
}
Это позволяет в конце пройти по столбцам от самого левого до самого правого, добавляя значения из HashMap в итоговый список в нужном порядке
Please open Telegram to view this post
VIEW IN TELEGRAM
99. Recover Binary Search Tree
Company:
Восстановите дерево, вернув узлам правильные значения
#leetcode99 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
662. Maximum Width of Binary Tree
Company:
Ширина уровня определяется, как длина между самым левым и самым правым ненулевыми узлами, где нулевые узлы между ними, которые присутствовали бы в полном бинарном дереве, также учитываются при расчете длины
#leetcode662 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(n)
Класс Pair:
private static class Pair {
TreeNode node;
int index;
public Pair(TreeNode node, int index) {
this.node = node;
this.index = index;
}
}
Please open Telegram to view this post
VIEW IN TELEGRAM
687. Longest Univalue Path
Company:
Длина пути между двумя узлами равна числу ребер между ними
#leetcode687 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(h)
Please open Telegram to view this post
VIEW IN TELEGRAM
545. Boundary of Binary Tree
Company:
Граница бинарного дерева представляет собой объединение:
#leetcode545 | #medium #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(n)
Если у текущего узла нет левого ребенка, переходим к правому, чтобы не пропустить крайние узлы в "перекошенных" деревьях
Принцип тот же, что и с левой границей: идем по краю (теперь справа), добавляем только не-листовые узлы.
Но есть важное отличие: чтобы сохранить правильный порядок (снизу вверх), мы добавляем значения после рекурсивного вызова, а не до него
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
968. Binary Tree Cameras
Company:
Каждая камера на узле может контролировать своего родителя, себя и своих непосредственных потомков
#leetcode968 | #hard #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Time: O(n)
Space: O(n)
Please open Telegram to view this post
VIEW IN TELEGRAM
272. Closest Binary Search Tree Value II
Company:
Верните k значений в BST, которые наиболее близки к target. Вы можете вернуть ответ в любом порядке
#leetcode272 | #hard #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM
Time: O(n)
Space: O(n)
subList(left, left + k)Please open Telegram to view this post
VIEW IN TELEGRAM
297. Serialize and Deserialize Binary Tree
Company:
Вам просто нужно убедиться, что бинарное дерево может быть сериализовано в строку, а эта строка может быть десериализована в исходную структуру дерева.
Для решения реализуйте класс Codec:
public class Codec {
public String serialize(TreeNode root) {}
public TreeNode deserialize(String data) {}
}#leetcode297 | #hard #binarytree
Please open Telegram to view this post
VIEW IN TELEGRAM