Пример #1
0
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))
Пример #2
0
# 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))
Пример #3
0
                # 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))