public class RemoveKthFromEnd {\n public class ListNodeE{\n int val;\n ListNodeE next;\n public ListNodeE(int x){\n val = x;\n }\n }\n public ListNodeE remove(ListNodeE head,int k){\n ListNodeE dummy = new ListNodeE(0);//定义一个虚拟头节点\n dummy.next = head;\n ListNodeE front = dummy , behind = dummy;\n while(front !=null && k > 0){\n front = front.next;\n k--;\n }\n while(front != null){\n front = front.next;\n behind = behind.next;\n }\n behind.next = behind.next.next;\n return dummy.next;\n }\n}public class Main {\n public static void main(String[] args) {\n RemoveKthFromEnd removeKthFromEnd = new RemoveKthFromEnd();\n \n // 创建链表节点\n RemoveKthFromEnd.ListNodeE node1 = removeKthFromEnd.new ListNodeE(1);\n RemoveKthFromEnd.ListNodeE node2 = removeKthFromEnd.new ListNodeE(2);\n RemoveKthFromEnd.ListNodeE node3 = removeKthFromEnd.new ListNodeE(3);\n RemoveKthFromEnd.ListNodeE node4 = removeKthFromEnd.new ListNodeE(4);\n RemoveKthFromEnd.ListNodeE node5 = removeKthFromEnd.new ListNodeE(5);\n \n // 构建链表\n node1.next = node2;\n node2.next = node3;\n node3.next = node4;\n node4.next = node5;\n \n // 调用移除节点方法\n ListNodeE result = removeKthFromEnd.remove(node1, 2);\n \n // 输出链表\n while (result != null) {\n System.out.print(result.val + " ");\n result = result.next;\n }\n }\n

Java 链表移除倒数第 K 个节点:算法实现及示例

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

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