一道二叉树遍历题

如何按照1234567的顺序打印?

一开始我想提供一个getRight()方法,即从4可以知道5,5可以知道6。。。

但是却是很蠢的:

1.反向的指向,理论上是不支持的,在递归情况下就gg了

2.时间复杂度高

其实可以直接把第一层加到集合里去,然后查看他的左右子树,然后再把左右子树加进去。。。以此类推

反思

反思下思路的形成,一开始我就是想的方法2,但是我认为这太扯了吧,遍历二叉树还能借助外部工具的吗?必然是有更妙的方法!其实方法2是最好的,因为可以看出来整个遍历是扁平的。下次应该先记录下所有思路,用 最短时间选择最优方案,再code。还有发现公司做的业务逻辑可以提升一个人的code判空,逻辑严密能力。

猜你喜欢

转载自blog.csdn.net/qq_36523667/article/details/81159914