正常的分层遍历是从上向下,每一层从左到右。
我们这里的分层是自下向上,每一层仍然从左到右。
比如一棵树是这样的:
A
B C
D E F
那么从上到下,从左到右的输出就是:ABCDEF。
那么从下到上,从左到右的输出就是:DEFBCA。
其实这里的实现也比较简单,我们需要借助一个队列和一个栈,队列用来实现分层遍历,但是入队的时候我们是先入队右子树,然后入队左子树。
我们把所有的数据都存入栈中,当我们从栈中弹出数据的时候,我们的输出就是从下到上,从左到右的了。
我们来直接给出一个示例代码吧:
package com.mengzhidu.teach.algorithm.tree.demo.traversal;
import com.mengzhidu.teach.algorithm.tree.demo.TreeNode;
import com.mengzhidu.teach.algorithm.tree.demo.TreeNodeHelper;