- 我是使用了中序遍历的方法,如果想要更快,可以让List直接与k进行判断,满足则跳出递归(在LeetCode上可以使用该法)
public class Solution {
TreeNode KthNode(TreeNode pRoot, int k)
{
List<TreeNode> ln=new ArrayList<>();
node(pRoot,ln);
//判断k是否在范围内
if(k<=0||k>ln.size()){
return null;
}
return ln.get(k-1);
}
public void node(TreeNode pRoot,List<TreeNode> list){
if(pRoot==null){
return;
}
if(pRoot.left!=null){
node(pRoot.left,list);
}
list.add(pRoot);
if(pRoot.right!=null){
node(pRoot.right,list);
}
}
}