剑指offer 面试题63 二叉搜索树的第 k 个结点
来源:互联网 发布:酒店水牌通过网络发送 编辑:程序博客网 时间:2024/05/20 09:46
剑指offer 面试题63 二叉搜索树的第 k 个结点
题目: 给定一棵二叉搜索树,请找出其中的第 k 大的结点。 例如下面的二叉树中,按结点数值大小升序顺序,第三个结点的值是 7。 8 / \ 6 10 / \ / \ 5 7 9 11
package foroffer.top70;import org.junit.Test;/** * description: * * @author liyazhou * @create 2017-06-08 19:42 * 面试题63:二叉搜索树的第 k 个结点 * * 题目: * 给定一棵二叉搜索树,请找出其中的第 k 大的结点。 * 例如下面的二叉树中,按结点数值大小升序顺序,第三个结点的值是 7。 * 8 * / \ * 6 10 * / \ / \ * 5 7 9 11 * * 考查点: * 1. 二叉搜索树 * 2. 二叉树的中序遍历 * 3. 递归,递归中状态变量的设置 */class BinTreeNode{ int value; BinTreeNode left; BinTreeNode right; public BinTreeNode(int _value){ value = _value; } public void setChildren(BinTreeNode _left, BinTreeNode _right){ left = _left; right = _right; }}public class Test63 { public BinTreeNode kthNode(BinTreeNode root, int[] k){ BinTreeNode kthNode = null; if (root.left != null) kthNode = kthNode(root.left, k); // 左子树的遍历 // System.out.println("--------" + k[0]); if (kthNode == null){ // 中序遍历的操作 k[0] --; if (k[0] == 0) kthNode = root; } if (kthNode == null && root.right != null) // 右子树的遍历 kthNode = kthNode(root.right, k); return kthNode; } @Test public void test(){ BinTreeNode node8 = new BinTreeNode(8); BinTreeNode node6 = new BinTreeNode(6); BinTreeNode node10 = new BinTreeNode(10); BinTreeNode node5 = new BinTreeNode(5); BinTreeNode node7 = new BinTreeNode(7); BinTreeNode node9 = new BinTreeNode(9); BinTreeNode node11 = new BinTreeNode(11); node8.setChildren(node6, node10); node6.setChildren(node5, node7); node10.setChildren(node9, node11); BinTreeNode node = kthNode(node8, new int[]{3}); System.out.println(node.value); }}
阅读全文
1 0
- 《剑指Offer》学习笔记--面试题63:二叉搜索树的第k个结点
- 【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】
- 剑指offer-面试题63:二叉搜索树的第K个结点
- 《剑指offer》面试题63 二叉搜索树的第k个结点
- 剑指offer--面试题63:二叉搜索树的第k个结点
- 剑指offer-面试题63-二叉搜索树的第k个结点
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- 剑指offer面试题63 二叉搜索树的第k个结点
- 【剑指Offer】面试题63:二叉搜索树的第k个结点
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- 剑指offer 面试题63:二叉搜索树的第k个结点(二叉树中序遍历的应用) 题解
- 《剑指offer》二叉搜索树的第k个结点
- 剑指offer:二叉搜索树的第k个结点
- [剑指offer]二叉搜索树的第k个结点
- 剑指offer-二叉搜索树的第k个结点
- 【剑指Offer】二叉搜索树的第k个结点
- 剑指offer 二叉搜索树的第k个结点
- 剑指Offer:二叉搜索树的第K个结点
- HDU6152 Friend-Graph 数学|签到|Ramsey定理
- 一个不知名的项目--Day03
- JavaEE关于全局参数的
- python爬取百度音乐(二)——保存数据到mysql中
- JS Date函数整理
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- JavaScript中的==和===
- Leetcode 21. Merge Two Sorted Lists
- 方格分割
- 虚拟币开发专题(山寨币怎样通过挖矿最后把储存的币出完)
- python入门(三十):类的成员
- 【机器学习实战 第九章】树回归 CART算法的原理与实现
- JS实现复制功能,兼容各大主流浏览器复制神器 ZeroClipboard
- 使用序列化和反序列化实现深拷贝