Java Solution (optimal and simple)
\'\'\'\nclass Solution {\n    public List addToArrayForm(int[] num, int k) {\n        \n        final LinkedList result = new LinkedList<>();\n        int len =
\'\'\'\nclass Solution {\n    public List<Integer> addToArrayForm(int[] num, int k) {\n        \n        final LinkedList<Integer> result = new LinkedList<>();\n        int len = num.length - 1;\n        \n        while(len >= 0 || k != 0){\n            \n            if(len >= 0){\n                k += num[len];\n\t\t\t\tlen--;\n            }\n            \n            result.addFirst(k % 10);\n            k /= 10;\n        }\n            \n        return result;\n        \n    }\n}\n\'\'\'
['Linked List', 'Java']