给定一个二叉树,返回它的中序 遍历。
示例:
输入: [1,null,2,3]
1
\
2
/
3
输出: [1,3,2]
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
法一:迭代






class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<Integer>();Stack<TreeNode> stack = new Stack<TreeNode>();while(root!=null || !stack.empty()){while(root!=null){stack.push(root);root = root.left;}root = stack.pop();res.add(root.val);root = root.right;}return res;}}
法二:递归
class Solution {public List < Integer > inorderTraversal(TreeNode root) {List < Integer > res = new ArrayList < > ();helper(root, res);return res;}public void helper(TreeNode root, List < Integer > res) {if (root == null) {return;}helper(root.left, res);res.add(root.val);helper(root.right, res);}}

