思路:一直往栈里压左节点,直到没有,再往外弹,并记录下,再去走右节点;
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> inorderTraversal(TreeNode root) {
//递归算法
//
List<Integer> a = new ArrayList<>();
Stack<TreeNode> b = new Stack<>();
if(root == null) return a;
while(root != null || !b.isEmpty())
{
while(root != null)
{
b.push(root);
root = root.left;
}
root = b.pop();
a.add(root.val);
root = root.right;
}
return a ;
//迭代算法
// List<Integer> a =new ArrayList<Integer>();
// if(root &#