Skip to content

Commit 62d9da8

Browse files
committed
cover corner case of if index is out of list length and reverse within its own list not make a new one
1 parent 47d99dd commit 62d9da8

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

app/src/main/java/assignment/App.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,26 @@ public class App {
44

55
public static int get(LinkedList list, int index) {
66
LinkedList.Node item = list.head; // O(1)
7-
for (int i = 0; i < index; i++) { // O(n)
7+
int length = list.length();
8+
for (int i = 0; i < length; i++) { // O(n)
9+
if(i==index){
10+
return item.data;
11+
} // This would make it so that if index is in the bounds of length then it will return the data other wise return null right?
812
item = item.next; // O(1)
13+
914
}
1015
return item.data; // O(1)
1116
} // Algorithmic Complexity = O(n)
1217

1318
public static void set(LinkedList list, int index, int value) {
1419
LinkedList.Node item = list.head; // O(1)
15-
for (int i = 0; i < index; i++) { // O(n)
20+
int length = list.length();
21+
for (int i = 0; i < length; i++) { // O(n)
22+
if(i==index){
23+
item.data = value;
24+
}
1625
item = item.next; // O(1)
1726
}
18-
item.data = value; // O(1)
1927
} // Algorithmic Complexity = O(n)
2028

2129
public static void remove(LinkedList list, int index) {
@@ -35,14 +43,24 @@ public static void remove(LinkedList list, int index) {
3543
} // Algorithmic Complexity = O(n)
3644

3745
public static LinkedList reverse(LinkedList list) {
38-
LinkedList reversedList = new LinkedList(); // O(1)
46+
// LinkedList reversedList = new LinkedList(); // O(1)
47+
// LinkedList.Node item = list.head; // O(1)
48+
// int length = list.length();
49+
// for (int i = 0; i < length; i++) { // O(n)
50+
// reversedList.prepend(item.data); // O(1)
51+
// item = item.next; // O(1)
52+
// }
53+
// return reversedList; // O(1)
3954
LinkedList.Node item = list.head; // O(1)
40-
41-
for (int i = 0; i < list.length(); i++) { // O(n)
42-
reversedList.prepend(item.data); // O(1)
55+
int length = list.length();
56+
int counter = 0;
57+
for (int i = 0; i < length; i++) { // O(n)
58+
list.prepend(item.data); // O(1)
59+
counter++;
60+
remove(list, counter);
4361
item = item.next; // O(1)
4462
}
45-
return reversedList; // O(1)
63+
return list; // O(1)
4664
} // Algorithmic Complexity = O(n)
4765

4866
public static boolean isSortedAscending(LinkedList list) {

0 commit comments

Comments
 (0)