回答
提供我理解正确的话,这个代码应工作:
(defn bf
[root]
(if (vector? root)
(let [roots (filterv (complement vector?) root)
children (filterv vector? root)]
(if-not (empty? children)
(into [roots] (mapcat bf children))
[roots]))
root))
这不是懒,它返回一个包含节点,例如向量的向量
(bf ['a ['b 'c] 'd ['e 'f]]) => [[a d] [b c] [e f]]
打印出来:
(let [xs (bf ['a ['b 'c] 'd ['e 'f]])]
(doseq [line (map str/join xs)] ; you need to require [clojure.string :as str]
(println line)))
http://articles.leetcode.com/2010/09/printing-binary-tree-in-level-order。HTML这就是我的意思是马辛,谢谢你的努力虽然这就是我所需要的。我希望你能从中得到比你更好的感觉:( – James
这一切都归结为你选择的表示方式,我无法理解它,对不起,这就是为什么我提出了另一种表示方式,更规范一个就lisps而言,我的解决方案不适合你吗?你只需要逐一打印每个矢量 –
如果你看结果,每个矢量对应于你想打印的一行(例如[ ) –
- 1. 反向打印树级别
- 2. 在Java中按级别打印AVL树
- 3. 如何打印二级树级别
- 4. 二叉搜索树的打印级别
- 5. 如何打印二叉树中每个节点的级别?
- 6. 如何在Clojure中打印以“ire”结尾的树元素?
- 7. 二进制树,打印出我在哪个级别
- 8. 级别顺序中的Java缩进树打印,而不是二叉树
- 9. 通过级别打印BTree
- 10. 如何在二叉树中打印节点数量最多的级别?
- 11. 打印级别顺序二进制搜索树格式
- 12. 二进制树,仅打印一个级别(BFS)
- 13. 二进制搜索树按C++递归级别打印节点
- 14. 打印家族树,直到某个级别| Python 3
- 15. 在Clojure漂亮打印
- 16. 在列中打印AVL树
- 17. 在C中打印B +树
- 18. Clojure打印功能
- 19. 在二叉树的单个给定级别上打印所有元素
- 20. 打印Clojure的数据
- 21. 如何在clojure中打印json数据?
- 22. GWT - 打印树
- 23. ANTLR打印树
- 24. 打印树
- 25. 确定我在JSON树中的级别
- 26. 从Clojure中的DataBase打印表格
- 27. 删除日志级别打印
- 28. 该函数用于按级别打印二叉树级别的时间和空间复杂度
- 29. 打印二叉树
- 30. 打印树递归
没人? :P我的头完全被打败了! – James
我没有。我看着它,从下午1点开始一直这样做。就像有一个心理障碍在继续。我来自Java背景,我正在使用Stuart Halloway编程Clojure,但那真的没有任何帮助。 – James
@DanielJour对不起,忘了标记你... – James