问题:给定一个二叉搜索树(BST),找到树中第 K 小的节点。
思路:二叉搜索树:左子树小于节点,右子树大于节点。
class BSTNode { int date; BSTNode left; BSTNode right; } public class FinkKthFromBST { public BSTNode bst = null; public void finkKthFromBST(BSTNode bst, int k){ if (bst != null) { if (bst.left != null) { finkKthFromBST(bst.left,k); } k--; if (k == 0) { bst = bst; return; } if (bst.right != null) { finkKthFromBST(bst.right,k); } } } }