题目大意
https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/
“龙摆尾”式层次遍历二叉树
题目分析
这种遍历方式需要在普通的层次遍历上加一些技巧,如下图:
在访问完第一层以后,要自右向左地访问第二层,但到第三层以后又要自左向右地访问,这种反序的思路很容易想到用栈。要用到两个栈,第一个栈存TreeNode,第二个栈存所处的层数,因为奇数和偶数层下边逻辑会不一样。首先向栈中放入root节点,然后遍历整个栈,遍历部分伪代码:
|
|
代码
|
|
算法复杂度是:O(树的节点数)