超高频:Binary Tree Level Order Traversal

超高频:Binary Tree Level Order Traversal_第1张图片
超高频:Binary Tree Level Order Traversal_第2张图片

这道题由于做过太多次了。。感觉没怎么太思考。 我认真分析了一下为什么BFS的做法很难解决这个问题。 因为一般做BFS的时候,我们会使用一个Queue,然后把一层一层的node扔进去。但是当我们pop出node的时候,已经分不清楚这个node是第几层的。

但是,要做也不是不可以。。

[BFS的解法 感觉还是太薄弱, 温习一下]

这个解法是 当在层数i的时候, 下一层的nodes以一个神奇的方法加入list:

遍历当前queue里所有的Nodes, 因为这些Nodes全部是下一层的爸爸们。 每一个node的left, right 都加入一个叫current 的List里。 然后把current 加入result List, 然后让当前层数list变成current. 【这个设计太聪明了】

超高频:Binary Tree Level Order Traversal_第3张图片

你可能感兴趣的:(超高频:Binary Tree Level Order Traversal)