一、题目

给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。

二、解法

 1 package algorithm7;
 2
 3 public class KthNode62 {
 4     public static void main(String[] args) {
 5         KthNode62 kth = new KthNode62();
 6         TreeNode t1 = new TreeNode(5);
 7         TreeNode t2 = new TreeNode(3);
 8         TreeNode t3 = new TreeNode(7);
 9         TreeNode t4 = new TreeNode(2);
10         TreeNode t5 = new TreeNode(4);
11         TreeNode t6 = new TreeNode(6);
12         TreeNode t7 = new TreeNode(8);
13         t1.left = t2;
14         t1.right = t3;
15         t2.left = t4;
16         t2.right = t5;
17         t3.left = t6;
18         t3.right = t7;
19         TreeNode t = kth.KthNode(t1,8);
20         System.out.println(t.val);
21     }
22     int index = 0;//计数器
23     //用中序遍历,左 根 右
24     public  TreeNode KthNode(TreeNode pRoot, int k)
25     {
26         if(pRoot != null){
27             TreeNode node = KthNode(pRoot.left,k);//左
28             if(node != null)//表示找到了结点
29                 return node;
30
31             index++;//根
32             if(index == k)
33                 return pRoot;//找到了
34
35             node = KthNode(pRoot.right,k);//右
36             if(node != null)//表示找到了结点
37                 return node;
38         }
39         return null;//遍历完了 返回空 或者该结点为空
40     }
41 }

转载于:https://www.cnblogs.com/fankongkong/p/7462149.html

60、二叉搜索树的第k个结点相关推荐

  1. 牛客题霸 [二叉搜索树的第k个结点]C++题解/答案

    牛客题霸 [二叉搜索树的第k个结点]C++题解/答案 题目: 给定一棵二叉搜索树,请找出其中的第k小的结点. 题解: 二叉搜索树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它 ...

  2. 剑指offer——面试题63:二叉搜索树的第k个结点

    剑指offer--面试题63:二叉搜索树的第k个结点 Solution1: 20180916重做 /* struct TreeNode {int val;struct TreeNode *left;s ...

  3. 《剑指Offer》51. 二叉搜索树的第k个结点

    题目:51. 二叉搜索树的第k个结点 知识点:二叉搜索树 题目描述: 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为 ...

  4. 剑指offer:二叉搜索树的第k个结点(中序遍历)

    1. 题目描述 /*给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. */ 2. 思路 中序遍历二叉搜索树,第K个就是结 ...

  5. 二叉搜索树的第k个节点java_剑指Offer62:二叉搜索树的第k个结点(Java)

    思路分析: 首先了解搜索二叉树在中序遍历下的结果是有序的.设一个全局变量num记录次数,每当中序遍历到一个节点时,num++.当num等于k时,返回node即结果. 难在递归上 题目描述 给定一棵二叉 ...

  6. 二叉搜索树的第k个结点

    2019独角兽企业重金招聘Python工程师标准>>> 题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值 ...

  7. 61二叉搜索树的第k个结点

    题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4. 思路:二叉搜索树的中序遍历是递增的序列,使用 ...

  8. 剑指offer之二叉搜索树的第K个结点

    题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 解题思路 二叉搜索树的中序遍历是顺序结构,利用中序遍历即可求 ...

  9. NC81 二叉搜索树的第k个结点

    和力扣的230很相似,不过230是返回val值,这道题是返回结点 喵! 方法1 1.利用BST的性质,中序遍历为升序. 2.定义全局的 count(用于计数) 和 res结点(用于接收结点) 3.定义 ...

最新文章

  1. oracle having用法
  2. Python(11):正则表达式
  3. linux7电脑配置要求,安装win7系统电脑配置有何要求--win10专业版
  4. oracle不同session共享变量,SpringMVC使用oracle配置session共享
  5. springcloud config服务端配置(二)
  6. 深入理解密码学基本概念和应用
  7. 图--广度优先遍历/深度优先遍历(c语言实现)
  8. em模型补缺失值_EM算法学习(三)
  9. 现代通信原理7.1:模拟角度调制的基本概念
  10. 北京理工大学大学计算机课各章节答案,北京理工大学 材料力学课本答案 第一次课(1[1]5+05学.pdf...
  11. RK3568平台开发系列讲解(安卓篇)PackageInstaller(应用安装)流程介绍
  12. python模拟类蠕虫--蠕虫初探
  13. windows10无法使用内置管理员账户打开应用
  14. 关于程序员的「年龄歧视」问题,程序员的年龄天花板难道是35岁吗?
  15. 传奇世界服务端WIN7简单安装教程
  16. 笔记工具:幕布 简要使用教程
  17. 解决Chrome播放视频闪屏黑屏无法播放
  18. mysql emoy表情_GitHub - PandaQAQ/PandaEmoView: emoji gif 表情图文混排,仿微信表情输入...
  19. MySql 数据库10038问题终极解决
  20. 京东api接入的几个坑(宙斯) 转载

热门文章

  1. 关闭IOS更新功能(ios4/5/6)
  2. text/html与text/plain的区别
  3. Mysql数据导入导出
  4. nginx+php+mysql+haproxy+keepalived+NFS,搭建wordpress
  5. ZooKeeper(二)ZooKeeper能做什么?
  6. Dapper的基本使用
  7. 细数阿里云服务器的十二种典型应用场景
  8. 老李推荐:第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列...
  9. Spring web应用最大的败笔
  10. Linux系统日志及日志分析