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

溫馨提示×

溫馨提示×

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

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

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

西青区| 库尔勒市| 合川市| 东海县| 神池县| 孟连| 贺州市| 泰兴市| 额敏县| 张家界市| 五寨县| 文成县| 会宁县| 新泰市| 德格县| 察哈| 涿鹿县| 罗源县| 阿拉尔市| 阜城县| 清原| 化隆| 莲花县| 聊城市| 大余县| 洛宁县| 黑河市| 泽州县| 巴林右旗| 沙河市| 秦安县| 南丹县| 东台市| 板桥市| 临沭县| 永清县| 湖北省| 长武县| 衢州市| 长顺县| 武强县|