题目要求:求一颗二叉树的有底向上的zigzag层次遍历,返回遍历结果。zigzag就是先从左往右,再从右往左;如此循环,直到便利到树的最底层。
返回结果
思路:使用队列,从根开始,每一层的节点都入队,然后对每层中出现的节点挨个出队,出队时,把出队的节点保存到一个list中,然后在每层的入队出队操作完成后,将list保存到结果中。
特殊情况就是根节点为空时,返回值为[]
这个题目跟Binary Tree Inorder Traversal和Binary Tree Inorder TraversalII的区别就在于每一层返回结果的顺序,可以借助一个布尔型变量控制从左向右还是从右向左来处理。
代码如下
运行结果为: