题解 | #二叉搜索树的第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); } } }