二叉树锯齿形层次遍历
题目
Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).
For example:
Given binary tree [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
return its zigzag level order traversal as:
[
[3],
[20,9],
[15,7]
]
解析重点
1.类似与广度优先遍历,我们需要把一层的数据放一起,那么我们怎么把一层的数据放一起呢,我们可以使用一个标志,当递归每加一层时,标志加一,标志相同点放在同一层list里面。
2.我们需要锯齿形的遍历,那么对于偶数层的数据我们添加list的时候可以反向添加,这样就保证了偶数层的数据从右边开始。
java代码
1 | /** |