题解 | #二叉搜索树的第k个结点#
二叉搜索树的第k个结点
http://www.nowcoder.com/practice/ef068f602dde4d28aab2b210e859150a
import java.util.*;
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
// 二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。
// 所以,按照中序遍历顺序找到第k个结点就是结果。
public class Solution {
ArrayList<TreeNode> res =new ArrayList<>();
TreeNode KthNode(TreeNode pRoot, int k) {
Inorder(pRoot);
if(res.size()>=k && k>0)
return res.get(k-1);
return null;
}
void Inorder(TreeNode pRoot){
if(pRoot!=null){
Inorder(pRoot.left);
res.add(pRoot);
Inorder(pRoot.right);
}
}
}
海康威视公司福利 1222人发布