亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

c++怎么計算二叉搜索樹中第K小的元素

發布時間:2022-03-17 16:05:29 來源:億速云 閱讀:134 作者:iii 欄目:大數據

這篇文章主要講解了“c++怎么計算二叉搜索樹中第K小的元素”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“c++怎么計算二叉搜索樹中第K小的元素”吧!

算法:

這類題目的核心思想是,利用二叉樹的中序遍歷是從小到大的,將其轉變成數組,然后對這個有序數組進行取值操作就可以了。

特別注意:轉換之后的數組有可能會存在重復的節點,此時的話,我們就需要對數組進行去重的操作。

題目1:二叉樹中第二小的節點

代碼實現:

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func findSecondMinimumValue(root *TreeNode) int {    res := midOrder(root)    m := make(map[int]int)    for _,v:=range res {        m[v] = v    }       resp := []int{}    for _,v:=range m {        resp = append(resp,v)    }    if len(resp)>=2{        sort.Ints(resp)        return resp[1]    }    return -1}func midOrder(root *TreeNode) (res []int) {    if root == nil {        return    }    res = append(res,midOrder(root.Left)...)    res = append(res,root.Val)    res = append(res,midOrder(root.Right)...)    return}

題目2:二叉搜索樹中第K小的元素

代碼實現:

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func kthSmallest(root *TreeNode, k int) int {    if root == nil {        return 0    }    res := midOrder(root)     if k > len(res) {        return 0    }    return res[k-1]}func midOrder(root *TreeNode) []int {    if root == nil {        return nil    }    res := []int{}    res = append(res,midOrder(root.Left)...)    res = append(res,root.Val)    res = append(res,midOrder(root.Right)...)    return res }

感謝各位的閱讀,以上就是“c++怎么計算二叉搜索樹中第K小的元素”的內容了,經過本文的學習后,相信大家對c++怎么計算二叉搜索樹中第K小的元素這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

c++
AI

行唐县| 淳安县| 曲水县| 政和县| 富裕县| 故城县| 含山县| 新龙县| 新巴尔虎右旗| 库伦旗| 安顺市| 崇明县| 新泰市| 安宁市| 贺兰县| 江城| 大厂| 安西县| 晴隆县| 盐源县| 宁明县| 永川市| 固始县| 通辽市| 囊谦县| 木兰县| 西吉县| 麻城市| 柏乡县| 兴业县| 石家庄市| 天水市| 镇坪县| 马鞍山市| 将乐县| 峨山| 东至县| 万宁市| 河间市| 宁津县| 德格县|