以下是基于给定代码的主函数实现:

public static void main(String[] args) {
    // 创建一个示例链表
    int[] arr = {1, 2, 3, 4, 5};
    ListNodeE head = buildLinkedList(arr);
    
    // 删除倒数第k个节点
    int k = 2;
    ListNodeE newHead = remove(head, k);
    
    // 打印删除节点后的链表
    ListNodeE curr = newHead;
    while (curr != null) {
        System.out.print(curr.val + " ");
        curr = curr.next;
    }
}

public static 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 static 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;
}

请注意,在上述代码中,我将 removebuildLinkedList 方法都声明为 static 方法,以便在主函数中直接调用

请您基于下段代码写一个主函数给您磕头了! public static ListNodeE removeListNodeE head int k ListNodeE dummy = new ListNodeE0;定义一个虚拟头节点 dummynext = head; ListNodeE front = dummy be

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

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