国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

二叉搜索樹的第k個結點

2019-11-08 02:48:03
字體:
來源:轉載
供稿:網友

題目描述

給定一顆二叉搜索樹,請找出其中的第k大的結點。例如, 5 / / 3 7 // // 2 4 6 8 中,按結點數值大小順序第三個結點的值為4。

算法解析: 由于二叉樹的特性,如果左子樹不為空,所有左子樹上的結點都小于等于根節點,如果右子樹不為空,所有右子樹上的結點都大于等于根節點,那么我們利用中序遍歷,即可得到所有結點按值大小順序排列的結果。

代碼如下:

TreeNode KthNode(TreeNode PRoot, int k) { if (pRoot == null){ return null; }else if (k <= 0){ return null; } Stack<TreeNode> stack = new Stack<>(); TreeNode temp = pRoot; int count = 0; while (temp != null || !stack.isEmpty()){ while (temp != null){ stack.push(temp); temp = temp.left; } if (!stack.isEmpty()){ TreeNode data = stack.pop(); count ++; if (count == k){ return data; } temp = data.right; } } return null; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临朐县| 凤凰县| 华亭县| 海晏县| 双峰县| 屏东市| 万年县| 昌都县| 巴塘县| 米泉市| 永年县| 怀宁县| 崇信县| 丰宁| 阿克| 新竹市| 临潭县| 石景山区| 徐水县| 郓城县| 宝坻区| 彭州市| 伊宁市| 彭水| 富锦市| 通辽市| 万宁市| 渭南市| 额济纳旗| 邵武市| 封开县| 湖南省| 无为县| 句容市| 德江县| 福建省| 玉门市| 吉木萨尔县| 洪湖市| 清水县| 观塘区|