Задача Leetcode 1038. От двоичного дерева поиска к дереву большей суммы --> PythonPython

Программы на Python
Anonymous
Задача Leetcode 1038. От двоичного дерева поиска к дереву большей суммы --> Python

Сообщение Anonymous »

Я решаю описанную выше задачу с лит-кодом на Python. Обычно я решаю проблему в блокноте Jupyter, а затем копирую и вставляю ее в поле решения лит-кода, как только закончу с ней. Однако у меня возникли проблемы с этой проблемой.
Определение проблемы определено ниже:
Учитывается корень двоичного дерева поиска (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:
Я не понимаю, как подойти к этой проблеме. Сначала я думал, что пройдусь по предоставленному списку. Однако, прочитав некоторые примеры ответов из обсуждения, я увидел, что используются такие команды, как root.right и root.left. Как мне это сделать в блокноте Jupyter? У меня нет опыта работы с TreeNodes, поэтому я хочу решить эту проблему правильно и изучить фундаментальную концепцию вместо того, чтобы грубо решать ее другим способом. Мы очень ценим любую помощь.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/660 ... ree-python

Вернуться в «Python»