Skip to content

Commit 0340ea5

Browse files
committed
Added task 19.
1 parent 67fe9a6 commit 0340ea5

File tree

3 files changed

+69
-0
lines changed

3 files changed

+69
-0
lines changed
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package s0019.remove.nth.node.from.end.of.list;
2+
3+
public class ListNode {
4+
int val;
5+
ListNode next;
6+
7+
ListNode() {}
8+
9+
ListNode(int val) {
10+
this.val = val;
11+
}
12+
13+
ListNode(int val, ListNode next) {
14+
this.val = val;
15+
this.next = next;
16+
}
17+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package s0019.remove.nth.node.from.end.of.list;
2+
3+
4+
public class Solution {
5+
int n;
6+
7+
public ListNode removeNthFromEnd(ListNode head, int n) {
8+
this.n = n;
9+
ListNode node = new ListNode(0, head);
10+
removeNth(node);
11+
12+
return node.next;
13+
}
14+
15+
private void removeNth(ListNode node) {
16+
if (node.next == null) return;
17+
18+
removeNth(node.next);
19+
this.n--;
20+
21+
if (this.n == 0) {
22+
node.next = node.next.next;
23+
}
24+
}
25+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package s0019.remove.nth.node.from.end.of.list;
2+
3+
import static org.hamcrest.CoreMatchers.equalTo;
4+
import static org.hamcrest.MatcherAssert.assertThat;
5+
6+
import org.junit.Test;
7+
8+
public class SolutionTest {
9+
@Test
10+
public void fourSum() {
11+
ListNode head = new ListNode();
12+
head.val = 1;
13+
ListNode node1 = new ListNode();
14+
node1.val = 2;
15+
head.next = node1;
16+
ListNode node2 = new ListNode();
17+
node2.val = 3;
18+
node1.next = node2;
19+
ListNode node3 = new ListNode();
20+
node3.val = 4;
21+
node2.next = node3;
22+
ListNode node4 = new ListNode();
23+
node4.val = 5;
24+
node3.next = node4;
25+
assertThat(new Solution().removeNthFromEnd(head, 2).toString(), equalTo("[1, 2, 3, 5]"));
26+
}
27+
}

0 commit comments

Comments
 (0)