Kth Smallest Element In a BST

找到二叉树中, 第 n 个最小的节点

 

my solution

可以一步一步找它的最小节点, 追踪的问题, 可以交给 stack

查找下一节点 (next) 可以这么描述:

如果当前节点 (cur) 有右子节点, 则 next 为右子节点的左根节点

否则, next 为上一个大于当前节点值的节点

这是用递归来实现的, 为了追踪, 使用了 stack

(我好希望 go 能提供一个标准的 stack, 这样代码可以更加简洁. 或许是提供了, 但我不知道?)

 

一次成功, 真好

 

the best solution

emm, 他使用了递归, 用递归来追踪, 可以不用显式追踪数据了, 挺好