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
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
from CodingInterview.my_util.Util import TreeNode 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)
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)