[LeetCode#94]Binary Tree Inorder Traversal

The problem:

Given a binary tree, return the inorder traversal of its nodes' values.

For example:
Given binary tree {1,#,2,3},

   1
    
     2
    /
   3

return [1,3,2].

Note: Recursive solution is trivial, could you do it iteratively?

The recursion way is very trivial:

public class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
    
        ArrayList<Integer> ret = new ArrayList<Integer> ();
        
        if (root == null)
            return ret;
        
        helper(root, ret);
        return ret; 
    }
    
    private void helper(TreeNode cur_root, ArrayList<Integer> ret) {
        
        if (cur_root == null)
            return;
        
        helper(cur_root.left, ret);
        ret.add(cur_root.val);
        helper(cur_root.right, ret);
    }
}
原文地址:https://www.cnblogs.com/airwindow/p/4216061.html