Skip to content

Commit a6df943

Browse files
author
Gonzalo Diaz
committed
[REFACTOR] Static methods with class generics
1 parent 65e1a0e commit a6df943

File tree

2 files changed

+15
-10
lines changed
  • src
    • algorithm_exercises_csharp/hackerrank/interview_preparation_kit/linked_list/lib
    • algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/linked_list/lib

2 files changed

+15
-10
lines changed
Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
namespace algorithm_exercises_csharp.hackerrank.interview_preparation_kit.linked_list.lib;
22

3-
public static class LinkedList<T>
3+
public static class LinkedListPrinter
44
{
5-
public class Node(T nodeData)
6-
{
7-
public T data { get; set; } = nodeData;
8-
public Node? next { get; set; } = null;
9-
}
10-
11-
public static void printSinglyLinkedList(Node? node, string sep, TextWriter textWriter)
5+
public static void printSinglyLinkedList<T>(LinkedList<T>.Node? node, string sep, TextWriter textWriter)
126
{
13-
Node? pointTo = node;
7+
var pointTo = node;
148

159
while (pointTo != null)
1610
{
11+
ArgumentNullException.ThrowIfNull(textWriter);
12+
1713
textWriter.Write(pointTo.data);
1814

1915
pointTo = pointTo.next;
@@ -25,3 +21,12 @@ public static void printSinglyLinkedList(Node? node, string sep, TextWriter text
2521
}
2622
}
2723
}
24+
25+
public static class LinkedList<T>
26+
{
27+
public class Node(T nodeData)
28+
{
29+
public T data { get; set; } = nodeData;
30+
public Node? next { get; set; } = default!;
31+
}
32+
}

src/algorithm_exercises_csharp_test/hackerrank/interview_preparation_kit/linked_list/lib/Node.Test.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void testPrintLinkedList()
4646
foreach (NodeTestCase test in tests)
4747
{
4848
using StringWriter sw = new();
49-
LinkedList<int>.printSinglyLinkedList(test.llist, test.separator, sw);
49+
LinkedListPrinter.printSinglyLinkedList(test.llist, test.separator, sw);
5050

5151
string result = sw.ToString();
5252
Assert.AreEqual(

0 commit comments

Comments
 (0)