这道题就是中序遍历,但是要注意需要一个全局变量记录遍历的个数,还有当中序遍历利用递归有返回值时,可以好好考虑。递归中序遍历其实就是判断当下节点是否是第k个节点。代码如下
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
int index=0;
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot!=null){
TreeNode node=KthNode(pRoot.left,k);
if(node!=null)
return node;
index++;
if(index==k)
return pRoot;
node=KthNode(pRoot.right,k);
if(node!=null)
return node;
}
return null;
}
}