/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
TreeNode* KthNode(TreeNode* pRoot, unsigned int k)
{
TreeNode* temp=NULL;
dfs(pRoot,temp,k);
return temp;
}
void dfs(TreeNode* p,TreeNode *(&ans) ,unsigned int &k)
{
if(p==NULL) return ;
if(k<=0) return ;
dfs(p->left,ans,k);
if(k<=0) return ;
if(k==1)
{
ans=p;
k--;
}
k--;
dfs(p->right,ans,k);
}
};