如何逐级打印二叉树?面试问题!

Cod*_*ier 5 algorithm binary-tree

如何逐级打印二叉树?

这是我今天得到的一个面试问题.果然,使用BFS风格肯定会奏效.但是,后续问题是:如何使用常量内存打印树?(所以不能使用队列)

我想过以某种方式将二叉树转换为链表但没有提出具体的解决方案.

有什么建议?

谢谢

Jer*_*fin 5

避免使用额外内存的一种方法(无论如何更多)是在遍历它时操纵树 - 当您向下遍历节点时,您将其指针的副本复制到其中一个子节点,然后将其反转为指向到了父母.当你走到最底层时,你会按照这些链接回到父母身边,当你走的时候,你会反过来指向孩子们.

当然,这不是整个工作,但它可能是单个"最棘手"的部分.