91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現二叉搜索樹節點最小距離

發布時間:2021-10-14 09:26:28 來源:億速云 閱讀:131 作者:iii 欄目:編程語言

本篇內容主要講解“如何實現二叉搜索樹節點最小距離”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何實現二叉搜索樹節點最小距離”吧!

給你一個二叉搜索樹的根節點 root ,返回樹中任意兩不同節點值之間的最小差值 。

示例 1:

輸入:root = [4,2,6,1,3]

輸出:1

示例 2:

輸入:root = [1,0,48,null,null,12,49]

輸出:1

提示:

樹中節點數目在范圍 [2, 100] 內

0 <= Node.val <= 10^5

題目分析:

1,根據二叉搜索樹的性質,我們可以采取中序遍歷的方式獲取排序后的結果

2,由于節點的值在[0,10^5]范圍內,節點值的差值在[-10^5-1,10^5+1]范圍內

3,需要用一個pre記錄前驅節點

4,針對二叉搜索樹類型的題目,通過遍歷可以得到有序的數列,然后可以求差值

5,根據題意,默認是升序

代碼實現

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func minDiffInBST(root *TreeNode) int {    _,diff:=bst(root,-100001,100001)    return diff}
func bst(root*TreeNode,pre,diff int)(int,int){    if root==nil{        return pre,diff    }    pre,diff=bst(root.Left,pre,diff)    if root.Val-pre<diff{          diff=root.Val-pre    }    pre=root.Val      pre,diff=bst(root.Right,pre,diff)    return pre,diff}

解法二:

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */  var a[]intfunc minDiffInBST(root *TreeNode) int {    a=nil    visit(root)    min:=100    for i:=0;i<len(a)-1;i++{        if min>a[i+1]-a[i]{            min=a[i+1]-a[i]        }    }    return min}
func visit(root *TreeNode){    if root==nil{        return    }    visit(root.Left)    a=append(a,root.Val)    visit(root.Right)}

到此,相信大家對“如何實現二叉搜索樹節點最小距離”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长葛市| 石阡县| 荃湾区| 城固县| 东兴市| 沂水县| 海安县| 钟祥市| 获嘉县| 洪泽县| 木里| 彰化县| 买车| 大姚县| 庐江县| 临沧市| 屯昌县| 温泉县| 周宁县| 永城市| 化隆| 九龙县| 克山县| 苍溪县| 离岛区| 交口县| 湛江市| 洪洞县| 棋牌| 广灵县| 渭南市| 集贤县| 东安县| 盘锦市| 电白县| 杂多县| 绥阳县| 远安县| 巴林左旗| 丹棱县| 涿州市|