解题关键字 "二叉搜索树"
看到二叉搜索树字眼大家脑海要立刻想起,左子节点值<根节点值<右子节点值,中序遍历就是有序列表,那么问题就迎刃而解了。
TreeNode KthNode(TreeNode pRoot, int k)
{
ArrayList<TreeNode> result = new ArrayList<>();
if(pRoot == null || k<=0){
return null;
}
foreach(result,pRoot);
if(result.size()>=k){
return result.get(k-1);
}else{
return null;
}
}
private void foreach(ArrayList<TreeNode> result, TreeNode node) {
if(node.left != null){
foreach(result, node.left);
}
result.add(node);
if(node.right != null){
foreach(result, node.right);
}
} 
京公网安备 11010502036488号