擅长:python、mysql、java
<p>这是一个相当“函数式编程”的解决方案,但有一种方法是(懒洋洋地)按顺序生成树中的节点,然后使用itertools只获取第一个k</p>
<pre><code>def inorder(tree):
if not tree: return
for node in inorder(tree.left): yield node
yield tree
for node in inorder(tree.right): yield node
def least(tree, k):
return itertools.islice(inorder(tree), k)
</code></pre>
<p>如果您使用的是python3,那么可以使用“yield from”来缩短这个解决方案。在</p>