📌  相关文章
📜  删除链表中每个第 K 个节点的Java程序(1)

📅  最后修改于: 2023-12-03 15:07:16.416000             🧑  作者: Mango

删除链表中每个第 K 个节点的Java程序

本程序旨在实现删除链表中每个第 K 个节点的功能,具体实现方法如下:

实现方法
  1. 遍历链表,找到第 K 个节点的前一个节点

  2. 删除第 K 个节点

  3. 重复以上步骤直到链表末尾

代码实现
public ListNode removeEveryKthNode(ListNode head, int k) {
    ListNode dummy = new ListNode(0);
    dummy.next = head;
    ListNode prev = dummy;
    int count = 0;
    while (prev.next != null) {
        count++;
        if (count % k == 0) {
            prev.next = prev.next.next;
        } else {
            prev = prev.next;
        }
    }
    return dummy.next;
}

其中,ListNode 为链表节点的实现类,具体实现如下:

public class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
使用方法

使用该程序可用以下代码:

ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
int k = 2;
ListNode result = removeEveryKthNode(head, k);

其中,head 为链表头节点,k 为每个要删除的节点的位置。最终的结果将保存在 result 变量中。

注意事项

本程序中,k 不能为 0 或负数,否则会导致程序出现异常。同时,如果链表为空,也会出现异常。因此,在使用本程序时,请确保传入的参数符合要求。