*285. Inorder Successor in BST

https://leetcode.com/problems/inorder-successor-in-bst/

solution

# BST下一个, 也就是找到第一个比p大的节点, 即最后一个访问的左节点
# 如果存在右节点,则右子树最左边的节点就是其下一个
# 如果不存在右节点,

class Solution(object):
    def inorderSuccessor(self, root, p):
        if not root:
            return

        successor = None
        while root:
            if root.val > p.val:
                successor = root
                root = root.left
            else:
                root = root.right
        return successor

时间复杂度:O(n) 空间复杂度:O(h)

follow up

*510. Inorder Successor in BST II

173. Binary Search Tree Iterator

Last updated