Java, Easy solution
```\nclass Solution {\n    public int[] addNegabinary(int[] arr1, int[] arr2) {\n        \n        List result = new ArrayList();\n        int pointer_1 = arr1.
```\nclass Solution {\n    public int[] addNegabinary(int[] arr1, int[] arr2) {\n        \n        List<Integer> result = new ArrayList();\n        int pointer_1 = arr1.length-1;\n        int pointer_2 = arr2.length-1;\n\n        int carry = 0;\n        int current = 0;\n        int sum = 0;\n        \n        while(pointer_1 >= 0 || pointer_2 >= 0){\n            \n            int a = (pointer_1 >=0)? arr1[pointer_1]: 0;\n            int b = (pointer_2 >=0)? arr2[pointer_2]: 0;\n            \n            sum = a+b+carry;\n            if(sum == 3){\n                current = 1; carry = -1;\n            }\n            else if(sum == 2){\n                current = 0; carry = -1;\n            }\n            else if(sum == 1){\n                current = 1; carry = 0;\n            }\n            else if(sum == 0){\n                current = 0; carry = 0;\n            }\n            else if(sum == -1)\n            {\n                current = 1; carry = 1;\n            }\n            \n            result.add(current);\n            pointer_1--;\n            pointer_2--;\n        }\n        \n        if(carry != 0)\n            result.add(1);\n        if(carry == -1)\n            result.add(1);\n        \n        // Removing leading zeros\n        int idx = result.size()-1;\n        while(idx > 0 && result.get(idx) == 0)\n            idx--;\n        \n        // reversing the list and adding the result to an array\n        int len = idx+1;\n        int[] negaBinary = new int[len];\n        for(int i=0; i<len; i++){\n            negaBinary[i] = result.get(idx);\n            idx--;\n        }\n        \n        return negaBinary;\n        \n    }\n}
['Java']