671. Second Minimum Node In a Binary Tree

https://leetcode.com/problems/second-minimum-node-in-a-binary-tree/

Since this is not a binary search tree, you have to traverse the entire tree.

class Solution:
    def findSecondMinimumValue(self, root: TreeNode) -> int:
        self.mmin = root.val
        self.res =float("inf")
        def dfs(node):
            if node == None:
                return
            if self.mmin < node.val < self.res:
                self.res = node.val
            dfs(node.left)
            dfs(node.right)
        dfs(root)
        if self.res == float("inf"):
            return -1
        return self.res

Last updated

Was this helpful?