671. 二叉树中第二小的节点

题目链接 671. 二叉树中第二小的节点
思路 树的遍历(DFS)
题解链接 官方题解
关键点 利用树的性质进行适当剪枝:1. 树的根节点为全局最小点 2. 父节点的值为该子树的最小值
时间复杂度 O(n)
空间复杂度 O(n)

代码实现:

class Solution:
def findSecondMinimumValue(self, root: Optional[TreeNode]) -> int:
answer = -1
val = root.val
def dfs(node):
if node is None:
return
nonlocal answer
if answer != -1 and node.val >= answer:
return
if node.val > val:
answer = node.val
return
dfs(node.left)
dfs(node.right)
dfs(root)
return answer
posted @   WrRan  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示