LeetCode简单题之二叉树中第二小的节点
题目
给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0。如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个。
更正式地说,即 root.val = min(root.left.val, root.right.val) 总成立。
给出这样的一个二叉树,你需要输出所有节点中的 第二小的值 。
如果第二小的值不存在的话,输出 -1 。
示例 1:
输入:root = [2,2,5,null,null,5,7]
输出:5
解释:最小的值是 2 ,第二小的值是 5 。
示例 2:
输入:root = [2,2,2]
输出:-1
解释:最小的值是 2, 但是不存在第二小的值。
提示:
树中节点数目在范围 [1, 25] 内
1 <= Node.val <= 2^31 - 1
对于树中每个节点 root.val == min(root.left.val, root.right.val)
来源:力扣(LeetCode)
解题思路
在这个题目的排序中,相等的值是具有相同位序的,所以需要对所以的值去重,然后再找最小值和第二小的值。
# 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: TreeNode) -> int:temp=[]def preorder(root):if root:temp.append(root.val)preorder(root.left)preorder(root.right)preorder(root)s=set(temp) #去重if len(s)==1:return -1first_min=float('inf')second_min=float('inf')for i in s: #遍历更新最小值和第二小的值if i<first_min:second_min=first_minfirst_min=ielif i<second_min:second_min=ireturn second_min
LeetCode简单题之二叉树中第二小的节点相关推荐
- leetcode刷题之 树(14)-递归:找出二叉树中第二小的节点
[LeetCode] Second Minimum Node In a Binary Tree 二叉树中第二小的结点 Given a non-empty special binary tree con ...
- LeetCode 671. 二叉树中第二小的节点
文章目录 1. 题目信息 2. 解题 2.1 递归查找 2.2 改循环 1. 题目信息 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点 ...
- 二叉树中第二小的节点
给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个. 更正式地说,root.val = mi ...
- 671. 二叉树中第二小的节点
给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么该节点的值等于两个子节点中较小的一个. 更正式地说,root.val = mi ...
- C#LeetCode刷题之#671-二叉树中第二小的节点(Second Minimum Node In a Binary Tree)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4100 访问. 给定一个非空特殊的二叉树,每个节点都是正数,并且每 ...
- LeetCode简单题之二叉树的最大深度
题目 给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,null,null,15, ...
- LeetCode简单题之比赛中的配对次数
题目 给你一个整数 n ,表示比赛中的队伍数.比赛遵循一种独特的赛制: 如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对.总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮. ...
- LeetCode简单题之字符串中的单词数
题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符. 请注意,你可以假定字符串里不包括任何不可打印的字符. 示例: 输入: "Hello, my name is John&q ...
- LeetCode简单题之数组中两元素的最大乘积
题目 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值. 请你计算并返回该式的最大值. 示例 1: 输入:nums = ...
最新文章
- 小D学blend-----如何创建自定义的Tooltip控件
- python使用matplotlib可视化3D柱状图(3D histogram、三维柱状图、包含三个坐标轴x、y、z)、设置zdir参数为z、改变3d图观察的角度
- R语言使用psych包的fa函数对指定数据集进行因子分析(输入数据为相关性矩阵)、使用nfactors参数指定抽取的因子的个数、fa函数因子分析结果解读(Extracting common facto
- clockdiff-检测两台linux主机的时间差
- 【渝粤题库】国家开放大学2021春2108刑法学(2)答案
- 389 find the difference
- 04.MyBatis别名的设置和类型转换器
- %3c php $str1=,ThinkPHP5.0.215.1.* 代码执行和命令执行漏洞利用
- testVC.modalPresentationStyle = UIModalPresentationFormSheet; 更改 VC大小
- c access mysql数据库_基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)...
- $(obj).each 和 $.each() 区别
- javase转javaee(java web)
- 计算机做游戏软件视频,电脑上录制游戏视频用什么软件好?专业的游戏录制软件推荐...
- elasticsearch怎么实现拼音首字母查询
- 基于JAVA的GUI编程的的迷宫游戏 2020-12-15
- ibm 服务器 阵列 加硬盘,IBM服务器增加硬盘
- 华大HC32F460系列填坑之USART
- 华为手机设置页面黑色_华为手机微信猫和老鼠主题皮肤怎么设置 ?超个性主题等你来设置!...
- 5G工业网关下工业自动化设备远程监控系统
- Vue项目在标签中如何书写多个内敛style样式
热门文章
- rancher部署项目Validation failed in API: Deployment.apps“”must be no more than 63 characters问题原因及解决方法
- 2022-2028年中国纤维增强聚合物行业市场调查研究及发展前景规划报告
- Python2 与 Python3 区别
- Bert系列(三)——源码解读之Pre-train
- 一文告诉你Adam、AdamW、Amsgrad区别和联系 重点
- 关于正则表达式 \1 \2之类的问题
- LeetCode简单题之矩阵中的幸运数
- TVM开发三个示例分析
- 第四代自动泊车从APA到AVP技术
- Android中Messenger进程间通信