二叉树栈实现前中后序遍历(易理解的方法)
说明:首先你需要看懂用栈实现中序遍历的代码,理解其思想: 从根节点开始入栈,找到他的左子树入栈.....一直到他的左子树为空了,左边到头了,取出当前根节点的值,从栈中取出当前根节点 然后找他的右子树继续入栈,找左子树入栈.....,直到右边取完了这时候一个节点就遍历完了,然后继续从栈中取上一个节点继续 其实考虑下为什么用栈呢?就是用他来回溯的要回溯到根节点,对于中序遍历:左中右,我按照右中左的顺序先后入栈里就可以了,然后每次循环取出栈顶节点也就是左子树作为根节点,取他的左右子树入栈,就可以了 实现: package com.bysj.common.算法; import java.util.ArrayList; import java.util.List; import java.util.Stack; public class 二叉树 { static class ColorNode { TreeNode node; Boolean isContinue; public ColorNode(TreeNode node, Boolean isContinue) { this.node = node; this.isContinue = isContinue; } } public static List<Integer> inorderTraversal(TreeNode root)