非递归的中序二叉树遍历,思路还是还是一样的。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ import java.util.Stack; import java.util.ArrayList; public class Solution { public ArrayList<Integer> inorderTraversal(TreeNode root) { // 二叉树非递归中序遍历,其实和之前是一样的。 ArrayList<Integer> result = new ArrayList<Integer>(); if(root != null){ Stack<TreeNode> stackNode = new Stack<TreeNode>(); Stack<Integer> stackFlag = new Stack<Integer>(); stackNode.push(root); stackFlag.push(0); while(!stackNode.isEmpty()){ int tempFlag = stackFlag.pop();