Определение проблемы определено ниже:
Учитывается корень двоичного дерева поиска (BST). , преобразуйте его в большое дерево так, чтобы каждый ключ исходного BST заменялся исходным ключом плюс сумма всех ключей, больших, чем исходный ключ в BST.
Напоминаем, Дерево двоичного поиска — это дерево, которое удовлетворяет следующим ограничениям:
Левое поддерево узла содержит только узлы с ключами, меньшими, чем ключ узла.
Правое поддерево узла содержит только узлы с ключами, превышающими ключ узла.
И левое, и правое поддеревья также должны быть деревьями двоичного поиска.
Пример ввода и вывода для задачи показан ниже< /h3>
Код: Выделить всё
Input: root = [4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
Output: [30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]
Код: Выделить всё
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def bstToGst(self, root: TreeNode) -> TreeNode:
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/660 ... ree-python