请您基于下段代码写一个主函数给您磕头了! public static ListNodeE removeListNodeE head int k ListNodeE dummy = new ListNodeE0;定义一个虚拟头节点 dummynext = head; ListNodeE front = dummy be
以下是基于给定代码的主函数实现:
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;
}
请注意,在上述代码中,我将 remove 和 buildLinkedList 方法都声明为 static 方法,以便在主函数中直接调用
原文地址: https://www.cveoy.top/t/topic/ihUS 著作权归作者所有。请勿转载和采集!