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);
    }
}

 

相关文章:

  • 2022-12-23
  • 2021-12-07
  • 2022-02-28
猜你喜欢
  • 2021-10-08
  • 2022-01-23
  • 2021-06-14
  • 2021-07-01
  • 2021-12-01
相关资源
相似解决方案