解题关键字 "二叉搜索树"
看到二叉搜索树字眼大家脑海要立刻想起,左子节点值<根节点值<右子节点值,中序遍历就是有序列表,那么问题就迎刃而解了。
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); } }