示例1给定一个二叉树的根节点 root ,返回它的 中序 遍历。
输入:root = [1,null,2,3] 输出:[1,3,2]示例2
输入:root = [] 输出:[]示例3
输入:root = [1] 输出:[1]示例4
输入:root = [1,2] 输出:[2,1]示例5
输入:root = [1,null,2] 输出:[1,2]要求
树中节点数目在范围 [0, 100] 内 -100 <= Node.val <= 100 进阶: 递归算法很简单,你可以通过迭代算法完成吗?代码Java
public class InOrderTraversal {
// 迭代法实现
public List inorderTraversal(TreeNode root) {
ArrayList arrayList = new ArrayList();
TreeNode p = root;
Stack stack = new Stack();
if (p == null)
return arrayList;
while (p !=null || !stack.empty() ) {
if (p != null) {
stack.push(p);
p = p.left;
} else if (p == null) {
p = stack.pop();
arrayList.add(p.val);
p = p.right;
}
}
return arrayList;
}
}



