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

前言

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

内容

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

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

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

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

中序遍历

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

func getMinimumDifference(root *TreeNode) int {
   
   res:=dfs(root)
   var val []int
    for i:=0;i

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

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

最后

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

你可能感兴趣的:(力扣二叉树,leetcode,算法,职场和发展,golang,二叉树)