Java 移除链表倒数第 k 个节点:代码示例和解释
public class RemoveKthFromEnd { public class ListNodeE{ int val; ListNodeE next; public ListNodeE(int x){ val = x; } } 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) { RemoveKthFromEnd solution = new RemoveKthFromEnd(); int[] arr = {1, 2, 3, 4, 5}; ListNodeE head = solution.buildLinkedList(arr); int k = 2; ListNodeE result = solution.remove(head, k); while (result != null) { System.out.print(result.val + " "); result = result.next; } } }
原文地址: https://www.cveoy.top/t/topic/pYUq 著作权归作者所有。请勿转载和采集!