[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal

题目要求:求一颗二叉树的有底向上的zigzag层次遍历,返回遍历结果。zigzag就是先从左往右,再从右往左;如此循环,直到便利到树的最底层。


[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal_第1张图片
二叉树


[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal_第2张图片

返回结果

思路:使用队列,从根开始,每一层的节点都入队,然后对每层中出现的节点挨个出队,出队时,把出队的节点保存到一个list中,然后在每层的入队出队操作完成后,将list保存到结果中。

特殊情况就是根节点为空时,返回值为[]

这个题目跟Binary Tree Inorder Traversal和Binary Tree Inorder TraversalII的区别就在于每一层返回结果的顺序,可以借助一个布尔型变量控制从左向右还是从右向左来处理。

代码如下

[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal_第3张图片
[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal_第4张图片

运行结果为:

[LeetCode OJ]- Binary Tree Zigzag Level Order Traversal_第5张图片

你可能感兴趣的:([LeetCode OJ]- Binary Tree Zigzag Level Order Traversal)