if t1: res = t1 elif t2: res = t2 else: return [] traversal(t1, t2) return res def mergeTrees2(self, t1: TreeNode, t2: TreeNode) -> TreeNode: if t1 and t2: node = TreeNode(t1.val + t2.val) node.left = self.mergeTrees(t1.left, t2.left) node.right = self.mergeTrees(t1.right, t2.right) return node return t1 or t2 tt1 = [1, 3, 2, 5] tt2 = [2, 1, 3, "null", 4, "null", 7] tt1 = [] tt2 = [1] t = MyTree() t1 = t.maketree(tt1) t2 = t.maketree(tt2) s = Solution() res = s.mergeTrees(t1, t2) print(t.print_tree(res))
# 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 sortedArrayToBST(self, nums: List[int]) -> TreeNode: def make_bst(lo, hi): if lo > hi: return None mid = (lo + hi) // 2 root = TreeNode(nums[mid]) root.left = make_bst(lo, mid - 1) root.right = make_bst(mid + 1, hi) return root return make_bst(0, len(nums) - 1) nums = [-10, -3, 0, 5, 9] nums = [1, 3] s = Solution() root = s.sortedArrayToBST(nums) t = MyTree() print(t.print_tree(root))
class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def constructMaximumBinaryTree(self, nums: List[int]) -> TreeNode: if len(nums) == 0: return None maxm = max(nums) ind = nums.index(maxm) root = TreeNode(maxm) root.left = self.constructMaximumBinaryTree(nums[:ind]) root.right = self.constructMaximumBinaryTree(nums[ind + 1:]) return root nums = [3, 2, 1, 6, 0, 5] # nums = [3,2,1] s = Solution() root = s.constructMaximumBinaryTree(nums) t = MyTree() res = t.print_tree(root) print(res)
from iv.Binarytree.mytree import MyTree arr = [100, 98, 102, 96, 99, "null", "null", "null", 97] m = MyTree() root = m.maketree(arr) res = m.print_tree(root) print(res)
# print(res[i].val, res[i+1].val) if res[i].val > res[i + 1].val: node1 = res[i] notfound = False else: if res[i].val < res[i - 1].val: ind.append(i) # print(ind) node2 = res[max(ind)] # print(node1.val, node2.val) node1.val, node2.val = node2.val, node1.val t = TreeNode(3) t.left = TreeNode(1) t.right = TreeNode(4) t.right.left = TreeNode(2) t = TreeNode(1) t.left = TreeNode(3) t.left.right = TreeNode(2) obj = MyTree() root = [1, 3, "null", "null", 2] # root = [3,1,4,"null","null",2] t = obj.maketree(root) s = Solution() s.recoverTree(t) print(obj.print_tree(t))
# 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 pruneTree(self, root: TreeNode) -> TreeNode: def isvalid(node: TreeNode): if not node: return False a1 = isvalid(node.left) a2 = isvalid(node.right) if not a1: node.left = None if not a2: node.right = None return node.val == 1 or a1 or a2 return root if isvalid(root) else None t = MyTree() mytt = [1, "null", 0, 0, 1] root = t.maketree(mytt) s = Solution() print(s.pruneTree(root)) res = t.print_tree(s.pruneTree(root)) print(res)