Ai
1 Star 2 Fork 5

LilithSangreal/LeetCode-Solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
second-minimum-node-in-a-binary-tree.py 846 Bytes
一键复制 编辑 原始数据 按行查看 历史
Allen Liu 提交于 2018-10-13 01:56 +08:00 . add complexity
# Time: O(n)
# Space: O(h)
import heapq
class Solution(object):
def findSecondMinimumValue(self, root):
"""
:type root: TreeNode
:rtype: int
"""
def findSecondMinimumValueHelper(root, max_heap, lookup):
if not root:
return
if root.val not in lookup:
heapq.heappush(max_heap, -root.val)
lookup.add(root.val)
if len(max_heap) > 2:
lookup.remove(-heapq.heappop(max_heap))
findSecondMinimumValueHelper(root.left, max_heap, lookup)
findSecondMinimumValueHelper(root.right, max_heap, lookup)
max_heap, lookup = [], set()
findSecondMinimumValueHelper(root, max_heap, lookup)
if len(max_heap) < 2:
return -1
return -max_heap[0]
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/LilithSangreal/LeetCode-Solutions.git
git@gitee.com:LilithSangreal/LeetCode-Solutions.git
LilithSangreal
LeetCode-Solutions
LeetCode-Solutions
master

搜索帮助