import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param proot TreeNode类
* @param k int整型
* @return int整型
*/
public int KthNode (TreeNode proot, int k) {
// write code here
if (proot == null) {
return -1;
}
// 保存树遍历的结果
ArrayList<Integer> result = new ArrayList<>();
// 先进行先序遍历
InOrder(proot, result);
// 在进行排序
Collections.sort(result);
// 查找k位置元素
for (int i = 0; i < result.size(); i ++) {
if (i == k - 1) {
return result.get(i);
}
}
return -1;
}
public void InOrder(TreeNode root, ArrayList<Integer> result){
if (root == null) {
return;
}
result.add(root.val);
InOrder(root.left, result);
InOrder(root.right, result);
}
}