class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right class Solution: def searchBST(self, root: TreeNode, val: int) -> TreeNode: def traverse(root: TreeNode, val: int): if not root: return None if root.val == val: return root elif root.val > val: return traverse(root.left, val) else: return traverse(root.right, val) return traverse(root, val) root = [4, 2, 7, 1, 3] val = 2 root = [4, 2, 7, 1, 3] val = 5 m = MyTree() mt = m.maketree(root) s = Solution() print(s.searchBST(mt, val))
# 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 findTarget(self, root: TreeNode, k: int) -> bool: mystack = [] def find(root: TreeNode, k: int, mystack: list): if root is None: return False if (k - root.val) in mystack: return True mystack.append(root.val) return find(root.left, k, mystack) or find(root.right, k, mystack) return find(root, k, mystack) root = [5, 3, 6, 2, 4, "null", 7] k = 9 # root = [5, 3, 6, 2, 4, "null", 7]; k = 28 t = MyTree() root1 = t.maketree(root) s = Solution() print(s.findTarget(root1, k))
# 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))