def sorted_array_to_BST(nums: List[int]) -> TreeNode:
    if not nums:
        return None
    mid = len(nums) // 2
    node = TreeNode(nums[mid])
    node.left = sorted_array_to_BST(nums[:mid])
    node.right = sorted_array_to_BST(nums[mid + 1:])
    return node
Esempio n. 2
0
def my(tree1: TreeNode, tree2: TreeNode) -> TreeNode:
    if tree1 and tree2:
        node = TreeNode(tree1.value + tree2.value)
        node.left = my(tree1.left, tree2.left)
        node.right = my(tree1.right, tree2.right)
        return node
    else:
        return tree1 or tree2
def my(nodes: List[int]) -> TreeNode:
    if not nodes:
        return None
    sorted_list = sorted(nodes[:])
    mid = len(nodes) // 2
    node = TreeNode(nodes[mid])
    node.left = my(nodes[:mid])
    node.right = my(nodes[mid + 1:])
    return node
Esempio n. 4
0
import collections


def my(tree1: TreeNode, tree2: TreeNode) -> TreeNode:
    if tree1 and tree2:
        node = TreeNode(tree1.value + tree2.value)
        node.left = my(tree1.left, tree2.left)
        node.right = my(tree1.right, tree2.right)
        return node
    else:
        return tree1 or tree2


tree1 = TreeNode(1)
tree1.left = TreeNode(3)
tree1.right = TreeNode(2)
tree1.left.left = TreeNode(5)
tree2 = TreeNode(2)
tree2.left = TreeNode(1)
tree2.right = TreeNode(3)
tree2.left.right = TreeNode(4)
tree2.right.right = TreeNode(7)

result = my(tree1, tree2)
queue = collections.deque([result])

while queue:
    node = queue.popleft()
    if node:
        print(node.value)
        queue.append(node.left)
def deserialize(data: str) -> TreeNode:
    #예외 처리
    if data == '# #':
        return None
    nodes = data.split()

    root = TreeNode(int(nodes[1]))
    queue = collections.deque([root])
    index = 2
    while queue:
        node = queue.popleft()
        if nodes[index] is not '#':
            node.left = TreeNode(int(nodes[index]))
            queue.append(node.left)
        index += 1
        if nodes[index] is not '#':
            node.right = TreeNode(int(nodes[index]))
            queue.append(node.right)
        index += 1
    return root


serial = ['1', '2', '3', 'null', 'null', '4', '5']
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.right.left = TreeNode(4)
root.right.right = TreeNode(5)

my(serial, root)