import org.junit.Test; public class DeleteKthLastNodeTest { private ListNode<Integer> expected; private ListNode<Integer> input; private int k; @Test public void deleteNode1() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); k = 1; test(expected, input, k); } @Test public void deleteNode2() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); k = 3; test(expected, input, k); } @Test public void deleteNode3() { expected = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); input = LinkedListUtil.createLinkedList(1, 2, 3, 4, 5); k = 5; test(expected, input, k); } private void test(ListNode<Integer> expected, ListNode<Integer> input, int k) { input.get(input.length() - k + 1).insertAfter(new ListNode<>(10)); DeleteKthLastNode.deleteNode(input, k); LinkedListUtil.assertSameList(expected, input); } }