力扣二叉树--第三十七天

news/2024/12/29 4:07:19/

前言

废话不多说,能学到东西!功不唐捐!

内容

一、二叉搜索树的最小绝对差

530. 二叉搜索树的最小绝对差

给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。

差值是一个正数,其数值等于两值之差的绝对值。

中序遍历

中序遍历将值保存在一个数组中再进行遍历求解

func getMinimumDifference(root *TreeNode) int {res:=dfs(root)var val []intfor i:=0;i<len(res)-1;i++{val=append(val,res[i+1]-res[i])}return findMin(val)}
func findMin(nums []int)int{min:=nums[0]for _,v:=range nums{if v<min{min=v}}return min
}
// func findMin(nums []int)int{
//     min:=nums[0]
//     for i:=0;i<len(nums)-1;i++{
//        if nums[i+1]<min{//第一遍写这个竟然写错了没发现 
//            min=nums[i+1]
//         }
//     }
//     return min
// }func dfs(root *TreeNode)(res []int){if root==nil{return }res=append(res,dfs(root.Left)...) res=append(res,root.Val)res=append(res,dfs(root.Right)...)return
}

在中序遍历的过程中用 pre变量保存前驱节点的值,这样即能边遍历边更新答案,不再需要显式创建数组来保存。

func getMinimumDifference(root *TreeNode)int{var prev *TreeNode// 保留前一个节点的指针min:=math.MaxInt64//var min math.MaxInt64   math.MaxInt64 是一个常量,表示 64 位有符号整数的最小值。你不能直接使用 var min math.MaxInt64 这样的代码来定义一个变量并将其赋值为 math.MaxInt64var dfs func(root *TreeNode)dfs=func (root *TreeNode){if root==nil{return }dfs(root.Left)if prev!=nil&&root.Val-prev.Val<min{min=root.Val-prev.Val}prev=rootdfs(root.Right)}dfs(root)return min
}

最后

学习使人快乐!掌控感让人舒适!学无止境!


http://www.ppmy.cn/news/1255448.html

相关文章

常见的攻击防护

只做模拟机器使用&#xff0c;不使用真实机器 目录 一、 DHCP饿死和防护应对措施.................................. 1 1&#xff0c; 实验拓扑&#xff1a;...................................................... 2 2&#xff0c; 实验配置............................…

1949-2021年全国31省公路里程数据

1949-2021年全国31省公路里程数据 1、指标&#xff1a;公路里程 2、范围&#xff1a;包括31省 1978-2021年期间无缺失 3、来源&#xff1a;各省NJ、产业NJ、各省统计GB 4、指标解释&#xff1a;公路里程指报告期末公路的实际长度。 统计范围&#xff1a;包括城间、城乡间、乡…

【iOS控件】—— UIPickerView的使用

【iOS控件】—— UIPickerView的使用 一. 简述UIPickerView1. 什么是UIPickerView2. UIPickerView遵守的协议 二. 测试Demo三. 总结 一. 简述UIPickerView 先看一下UIPickerView的效果图&#xff1a; 1. 什么是UIPickerView UIPickerView是iOS平台上的一个用户界面元素&am…

电脑连不上wifi,适配器Intel(R)WiFi6 AX201 160MHz遇到与驱动程序或硬件相关问题,连不上wifi,电脑WiFi图标没了

电脑WiFi图标没了&#xff0c;电脑连不上wifi 适配器IntelWiFi6 AX201 160MHz遇到与驱动程序或硬件相关问题应该怎么解决&#xff1f; 方法一&#xff1a;电脑冷重启即可 就是长按那个开机键&#xff0c;然后滑动关机&#xff0c;&#xff0c;&#xff0c;重启&#xff08;我…

自恋的领导

自恋的领导》&#xff1f;&#xff1f;&#xff1f; 在职场中&#xff0c;我曾经遇到过一位自恋狂的领导。他总是自吹自擂&#xff0c;自我标榜&#xff0c;而且对团队合作态度消极&#xff0c;经常拖后腿。他的言行举止充满了负能量&#xff0c;让人感到非常不舒服。例如&…

‘str‘ object has no attribute ‘decode‘:问题解决办法

‘str’ object has no attribute ‘decode’ 一般是因为decode方法不匹配导致的 由于此方法是开源文件编写的&#xff0c;我们无法直接将其修改 所以可以使用一些暴力的方法&#xff0c;比如卸载重装 首先使用命令 pip uninstall h5py然后安装版本比较低的h5py pip instal…

二叉树k层的叶子结点个数

文章目录 1 题目2 思路2.1 思路12.2 思路2 3 代码实现3.1 思路13.2 思路23.3 完整的代码案例 1 题目 假设二叉树采用二叉链表存储结构&#xff0c;设计一个算法求其指定的第k层&#xff08;k>1&#xff0c;跟是第1层&#xff09;的叶子结点个数。 2 思路 2.1 思路1 设置…

分享一个国内可用的免费AI-GPT网站

背景 ChatGPT作为一种基于人工智能技术的自然语言处理工具&#xff0c;近期的热度直接沸腾&#x1f30b;。 我们也忍不住做了一个基于ChatGPT的网站&#xff0c;可以免登陆&#xff01;&#xff01;国内可直接对话AI&#xff0c;也有各种提供工作效率的工具供大家使用。 可以这…