题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 24 6 8 中,按结点数值大小顺序第三个结点的值为4。
-
-
-
-
-
-
-
-
-
-
-
-
-
- import java.util.Stack;
- public class Solution {
- TreeNode KthNode(TreeNode pRoot, int k)
- {
- if(pRoot==null) return null;
- int i = 0;
- Stack<TreeNode> stack = new Stack<TreeNode>();
- TreeNode p = pRoot;
- while(p!=null || stack.size()!=0){
- while(p!=null){
- stack.add(p);
- p = p.left;
- }
-
- if(stack.size()!=0){
- p = stack.pop();
- if(++i==k){return p;}
- p = p.right;
- }
- }
- return null;
- }
-
-
- }
原文链接http://blog.csdn.net/crazy__chen/article/details/45113461