102 Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
|
|
return its level order traversal as:
|
|
思路
二叉树的层次优先遍历,需要涉及广度优先搜索(BFS)。将节点按层次出入队列可以轻松地输出连续的层次优先遍历结果。但是如果需要对每一层分别进行输出,就比较有技巧了。
比较常用的办法是使用空节点来充当层与层之间的分隔符,在python当中用None
来表示。当队头访问到空节点后,队尾相应补充一个空节点,是为下一层的分隔符。需要注意的是,队列当中不能够添加额外的空节点,以防分层错乱;如果访问到树的底部,需要注意不要再添加空节点,以防陷入死循环。
python有自带的Queue(队列)类。在这里我利用list实现了一个简单的Queue,也可以实现同样的功能。
|
|