/**
* Definition for a binary tree node.
* public class TreeNode {
* public int val;
* public TreeNode left;
* public TreeNode right;
* public TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int KthSmallest(TreeNode root, int k)
{
if(k < 1){
return -1;
}
var q = new Queue<int>();
Inorder(root, q);
int last = -1;
for(var i = 0;i < k - 1; i++){
if(q.Count > 0){
last = q.Dequeue();
}
}
return q.Count > 0 ? q.Dequeue() : last;
}
private void Inorder(TreeNode node, Queue<int> queue){
if(node.left != null){
Inorder(node.left, queue);
}
queue.Enqueue(node.val);
if(node.right != null){
Inorder(node.right, queue);
}
}
}版权声明:本文为博主原创文章,未经博主允许不得转载。
LeetCode -- Kth Smallest Element in a BST
原文:http://blog.csdn.net/lan_liang/article/details/48897017