二叉搜索树的第k个结点
题目描述:给定一棵二叉搜索树,请找出其中的第k小的结点。例如:(5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
实现语言:Java
/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.Stack; public class Solution { TreeNode KthNode(TreeNode root, int k){ if(root==null||k<=0){ return null; } Stack<TreeNode> stk=new Stack<TreeNode>(); while(!stk.isEmpty()||root!=null){ if(root!=null){ stk.push(root); root=root.left; }else{ root=stk.pop(); if(k==1){ return root; } --k; root=root.right; } } return null; } }