/**
* 面试题63:二叉搜索树的第k个结点
* 给定一颗二叉搜索树,请找出其中的第k大的结点
* 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
*/
public class _63_binary_k_num {
public static void main(String[] args) {
int[] a={8,6,10,5,7,9,11};
TreeNode63 treeNode63 = new TreeNode63(8);
treeNode63.left= new TreeNode63(6);
treeNode63.right= new TreeNode63(10);
treeNode63.left.left= new TreeNode63(5);
treeNode63.left.right= new TreeNode63(7);
treeNode63.right.left= new TreeNode63(9);
treeNode63.right.right= new TreeNode63(11); Solution63 solution63 = new Solution63();
TreeNode63 treeNode631 = solution63.KthNode(treeNode63, 3);
System.out.println(treeNode631.val);
}
}
class Solution63 {
int k;
TreeNode63 KthNode(TreeNode63 pRoot, int k) {
if(pRoot==null||k==0){
return null;
}
this.k=k;
return getKNum(pRoot);
}
public TreeNode63 getKNum(TreeNode63 pRoot){
TreeNode63 result=null;
if(pRoot!=null){
if((result=getKNum(pRoot.left))!=null){
System.out.println("上"+result.val);
return result;
}
if((k--)==1){
System.out.println("z"+pRoot.val);
return pRoot;
}
if((result=getKNum(pRoot.right))!=null){
System.out.println("x"+result.val);
return result;
}
}
return null;
}
}
class TreeNode63 {
int val = 0;
TreeNode63 left = null;
TreeNode63 right = null;
public TreeNode63(int val) {
this.val = val;
}
}

63:二叉搜索树的第k个结点的更多相关文章

  1. C++版 - 剑指offer 面试题63:二叉搜索树的第k个结点(二叉树中序遍历的应用) 题解

    面试题 63:二叉搜索树的第k个结点 题目:给定一颗二叉搜索树,请找出其中的第k大的结点.例如, 5 / \ 3 7 /\ /\ 2 4 6 8 (见下面的图1) 中,按结点数值大小顺序第三个结点的值 ...

  2. 《剑指offer》第五十四题(二叉搜索树的第k个结点)

    // 面试题54:二叉搜索树的第k个结点 // 题目:给定一棵二叉搜索树,请找出其中的第k大的结点. #include <iostream> #include "BinaryTr ...

  3. 剑指offer 62. 二叉搜索树的第 k 个结点

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

  4. 【剑指Offer】二叉搜索树的第k个结点 解题报告(Python)

    [剑指Offer]二叉搜索树的第k个结点 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervie ...

  5. 【剑指Offer】62、二叉搜索树的第k个结点

      题目描述:   给定一棵二叉搜索树,请找出其中的第k小的结点.例如(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4.   解题思路:   本题实际上比较简单,主要还是考察对 ...

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

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

  7. 【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】

    题目:给定一棵二叉搜索树,请找出当中的第k大的结点. 解题思路 假设依照中序遍历的顺序遍历一棵二叉搜索树,遍历序列的数值是递增排序的. 仅仅须要用中序遍历算法遍历一棵二叉搜索树.就非常easy找出它的 ...

  8. 【剑指Offer】63、二叉搜索树的第k个结点

    题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点.例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4. 题解一:DFS 借助栈实现 // 中序非递归 public ...

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

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

随机推荐

  1. Varish 缓存

    varish 缓存 2013年06月17日,Varnish Cache 3.0.4 发布,为目前最新版本. varish是以内存作为共享容器的:内存的大小决定了它的缓存容量.相对于主要以硬盘为存储的s ...

  2. IE8以下浏览器设置Title的问题

    ie8不支持网页title的如下写法  $('title').text('标题');  $('title').html('标题'); 在ie8中,正确写法: document.title = &quo ...

  3. php 无法正确获取系统当前时间的解决办法

    今天捣鼓一个统计系统时让用户自动录入用户信息,后台使用PHP的date()函数来获取系统时间,发现时间跟当前时间对不上,后来是因为PHP默认的时区是UTC,应该将其时区设置为北京时间. 方法一:修改p ...

  4. Handler使用中可能引发的内存泄漏

    https://my.oschina.net/rengwuxian/blog/181449 http://www.jianshu.com/p/cb9b4b71a820 http://blog.csdn ...

  5. JS实现随机背景图片与图片大小变换的效果

    经常在网上见一些网站访问一次背景图片改变一次,而且图片的大小不停变换,于是想着自己研究一下. 背景图片可以通过JS的随机数来改变图片的src来实现随机图片,图片的大小变换可以用JS的setInterv ...

  6. centos7入门

    yum install net-tools 设置IP和掩码 ifconfig eth0 1.1.1.20 netmask 255.255.255.0 设置网关 route add default gw ...

  7. nvm安装与使用

    1.nvm是什么 nvm全名node.js version management,顾名思义是一个nodejs的版本管理工具.通过它可以安装和切换不同版本的nodejs.下面列出下载.安装及使用方法. ...

  8. class_create(),device_create自动创建设备文件结点【转】

    本文参考来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhenwenxian/archive/2010/03/28/5424434.aspx 本文转自:http://ww ...

  9. Oracle11g的database 和client的区别是什么?

    由于工作需要,刚开始接触oracle数据库,完全小白,下载的时候看到有database和client两种类型可供下载,一时不知如何是好,于是网上询问得知其中区别,在此记录一下自己的无知. “datab ...

  10. CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

    环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 19 ...