小黑代码(暴力)
# 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 findSecondMinimumValue(self, root: Optional[TreeNode]) -> int:
vals = set()
def dfs(node):
if not node:
return
vals.add(node.val)
dfs(node.left)
dfs(node.right)
dfs(root)
vals = list(vals)
if len(vals) < 2:
return -1
return sorted(vals)[1]
递归法
# 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 findSecondMinimumValue(self, root: Optional[TreeNode]) -> int:
if not root:
return
self.ans, self.root_val = -1, root.val
def dfs(node):
# 过滤出空值 或者 值大于self.ans的
if not node or (node.val > self.ans and self.ans != -1):
return
if node.val != self.root_val:
self.ans = node.val
dfs(node.left)
dfs(node.right)
dfs(root)
return self.ans
小黑生活
看着身边的同事好卷啊,自己也要努力啊