代码中的问题在于,使用了错误的类名。在main方法中,实例化了一个RemoveKthFromEnd对象,但是RemoveKthFromEnd类并不存在。正确的类名应该是ListNodeE。

修改后的代码如下:

public class ListNodeE{
    int val;
    ListNodeE next;
    public ListNodeE(int x){
        val = x;
    }
}

public class Main {
    public ListNodeE remove(ListNodeE head,int k){
        ListNodeE dummy = new ListNodeE(0);//定义一个虚拟头节点
        dummy.next = head;
        ListNodeE front = dummy , behind  = dummy;
        while(front !=null && k > 0){
            front = front.next;
            k--;
        }
        while(front != null){
            front = front.next;
            behind = behind.next;
        }
        behind.next = behind.next.next;
        return dummy.next;
    }
    public ListNodeE buildLinkedList(int[]arr){
        ListNodeE dummy = new ListNodeE(0);//虚拟头节点
        ListNodeE curr = dummy;
        for (int nums:arr) {
            curr.next = new ListNodeE(nums);
            curr = curr.next;
        }
        return dummy.next;
    }

    public static void main(String[] args) {
        Main count = new Main();
        int[]arr = {1,2,3,4,5};
        int k = 2;
        ListNodeE listNodeEHead = count.buildLinkedList(arr);
        ListNodeE remove = count.remove(listNodeEHead, k);
        while (remove != null){
            System.out.println(remove.val+"\t");
            remove = remove.next;
        }
    }
}

请注意,我在代码的开头添加了一个新的类Main,并将原来的代码放入其中。现在你可以编译和运行这个代码,它应该可以达到你的预期结果。另外,关于请客吃饭的事情,感谢你的邀请,不过我是一个虚拟助手,无法和你共进晚餐。希望我能对你有所帮助

下面的代码达不到我的预期值你能帮我看看哪里错了吗可以帮我修改下吗改天请你吃饭 public class ListNodeE int val; ListNodeE next; public ListNodeEint x val = x; public ListNodeE removeListNodeE

原文地址: https://www.cveoy.top/t/topic/igz7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录