Java 我的技术哪一部分表现得不符合预期?

Java 我的技术哪一部分表现得不符合预期?,java,kattis,Java,Kattis,所以我试图解决一个Kattis问题: 总之,当前的任务是创建一个具有以下方法的teque:push_front(),在teque的开头附加一个元素, push_back()在Teque的末尾追加一个元素。 push_middle()将一个元素插入到Teque的中间(如果n是添加之前的元素数,则新元素的索引为(n+1)/2)。 我的解决方案是使用两个ArrayList,一个用于存储前半部分,另一个用于存储后半部分。它们是平衡的,因此每个列表中元素的最大可能差异是1。这应该在理论上为所有操作提供O(

所以我试图解决一个Kattis问题: 总之,当前的任务是创建一个具有以下方法的teque:push_front(),在teque的开头附加一个元素, push_back()在Teque的末尾追加一个元素。 push_middle()将一个元素插入到Teque的中间(如果n是添加之前的元素数,则新元素的索引为(n+1)/2)。 我的解决方案是使用两个ArrayList,一个用于存储前半部分,另一个用于存储后半部分。它们是平衡的,因此每个列表中元素的最大可能差异是1。这应该在理论上为所有操作提供O(1)

这是我的代码。我已经测试了很多,得到了我期望的输出,但是Kattis不接受

class Teque {
        ArrayList<Integer> headList = new ArrayList<Integer>();
        ArrayList<Integer> tailList = new ArrayList<Integer>();
    
    
        void push_front(int element){
            if(headList.size()>tailList.size()){
                tailList.add(0, headList.remove(headList.size()-1));
            }
            headList.add(0, element);
        }
    
        void push_back(int element){
            if(tailList.size()>headList.size()){
                headList.add(tailList.remove(0));
            }
            tailList.add(element);
        }
    
        void push_middle(int element){
            if(headList.size()==tailList.size()){
                headList.add(element);
            }
            else if(headList.size()>tailList.size()){
                tailList.add(0, element);
            }
            else {
                headList.add(element);
            }
        }
    
        int get(int index){
            if( index<headList.size()){
                return headList.get(index);
            }
            else {
                return tailList.get(index-headList.size());
            }
        }
    
        void printHeadList(){
            for (int n: headList) {
                System.out.print(n+" ");
            }
        }
    
        void printTailList(){
            for (int n: tailList) {
                System.out.print(n+" ");
            }
        }
    
    
        @Override
        public String toString(){
            String s = "";
            for (int n: headList) {
                s+=(n)+" ";
            }
            for (int n: tailList) {
                s+=n+" ";
            }
            return s;
        }
    
    }

class-Teque{
ArrayList headList=新的ArrayList();
ArrayList tailList=新的ArrayList();
无效推前(内部元素){
如果(headList.size()>tailList.size()){
tailList.add(0,headList.remove(headList.size()-1));
}
标题列表。添加(0,元素);
}
void push_back(int元素){
if(tailList.size()>headList.size()){
添加标题列表(tailList.remove(0));
}
tailList.add(元素);
}
无效推_中间(int元素){
如果(headList.size()=tailList.size()){
标题列表。添加(元素);
}
else if(headList.size()>tailList.size()){
tailList.add(0,元素);
}
否则{
标题列表。添加(元素);
}
}
int get(int索引){
如果(索引)