【发布时间】:2017-12-29 23:21:13
【问题描述】:
我已经对如何遍历二叉树进行了大量研究,但我仍然没有找到一种方法来遍历一棵树而不一直到它的叶子。我只想一次打印一层二叉树,而不是使用 In-Order-Traversal、Pre-Order-Traversal 或 Post-Order-Traversal 结果。
我要打印:{2, 7, 5, 2, 6, null, 9, null, null, 5, 11, 4, null}。我可以使用递归来解决这个问题吗?因为在我解决其他非叶子之前,我似乎总是在一侧的叶子上结束。
【问题讨论】:
-
这里的关键词是“广度优先”,如果你先去叶子,它被称为“深度优先”。谷歌了解如何实施“广度优先”。
-
你想要的不是典型的二叉树遍历,因为遍历是递归的访问方式 (root - leftChild - rightChild), (leftChild - root - rightChild), (leftChild - rightChild - root )。你会发现那里没有其他可能性。
标签: java algorithm binary-tree