[LeetCode OJ]- Binary Tree Zigz
2017-03-24 本文已影响0人
其中一个cc
题目要求:求一颗二叉树的有底向上的zigzag层次遍历,返回遍历结果。zigzag就是先从左往右,再从右往左;如此循环,直到便利到树的最底层。
![](https://img.haomeiwen.com/i3265633/4956b3b11532155f.png)
![](https://img.haomeiwen.com/i3265633/ae92037aa37a61f6.png)
返回结果
思路:使用队列,从根开始,每一层的节点都入队,然后对每层中出现的节点挨个出队,出队时,把出队的节点保存到一个list中,然后在每层的入队出队操作完成后,将list保存到结果中。
特殊情况就是根节点为空时,返回值为[]
这个题目跟Binary Tree Inorder Traversal和Binary Tree Inorder TraversalII的区别就在于每一层返回结果的顺序,可以借助一个布尔型变量控制从左向右还是从右向左来处理。
代码如下
![](https://img.haomeiwen.com/i3265633/b9982f3bfd173236.png)
![](https://img.haomeiwen.com/i3265633/5b9a98f696765699.png)
运行结果为:
![](https://img.haomeiwen.com/i3265633/5bd3fac85bf97680.png)