3.2 Binary Tree Preorder Traversal

"Pre" order: node before left and right.

Code Template

public ArrayList<Integer> preorderTraversal(TreeNode root) {
    ArrayList<Integer> rst = new ArrayList<Integer>();

    if (root == null)
        return rst;

    helper(root, rst);

    return rst;
}

public void helper(TreeNode root, ArrayList<Integer> rst) {
    if (root == null) {
        return;
    }

    rst.add(root.val);

    helper(root.left, rst);
    helper(root.right, rst);
}