671. Second Minimum Node In a Binary Tree
1. Question:
671. Second Minimum Node In a Binary Tree
url: https://leetcode.com/problems/second-minimum-node-in-a-binary-tree/description/
Given a non-empty special binary tree consisting of nodes with the non-negative value, where each node in this tree has exactly two
or zero
sub-node. If the node has two sub-nodes, then this node's value is the smaller value among its two sub-nodes.
Given such a binary tree, you need to output the second minimum value in the set made of all the nodes' value in the whole tree.
If no such second minimum value exists, output -1 instead.
Example 1:
Input: 2 / \ 2 5 / \ 5 7 Output: 5 Explanation: The smallest value is 2, the second smallest value is 5.
Example 2:
Input: 2 / \ 2 2 Output: -1 Explanation: The smallest value is 2, but there isn't any second smallest value.
2. Solution:
# Definition for a binary tree node. class TreeNode(object): def __init__(self, x): self.val = x self.left = None self.right = None class Solution(object): def dfs(self, root, set_value): if root is None: return set_value.add(root.val) self.dfs(root.left, set_value) self.dfs(root.right, set_value) def findSecondMinimumValue(self, root): """ :type root: TreeNode :rtype: int """ set_vlae = set() self.dfs(root, set_vlae) if len(set_vlae) <= 1: return -1 s_set = sorted(set_vlae) return s_set[1]
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步