Skip to content

Instantly share code, notes, and snippets.

@tacksoo
Created February 14, 2013 06:00
Show Gist options
  • Save tacksoo/4950873 to your computer and use it in GitHub Desktop.
Save tacksoo/4950873 to your computer and use it in GitHub Desktop.
The Practice-IT implementation of a LinkedList
public class LinkedIntList {
private ListNode front;
public LinkedIntList() {
front = null;
}
public int size() {
int count = 0;
ListNode current = front;
while(current != null) {
current = current.next;
count++;
}
return count;
}
public int get(int index) {
return nodeAt(index).data;
}
public String toString() {
if(front == null) {
return "[]";
} else {
String result = "[" + front.data;
ListNode current = front.next;
while(current != null) {
result += ", " + current.data;
current = current.next;
}
result += "]";
return result;
}
}
public int indexOf(int value) {
int index = 0;
ListNode current = front;
while(current != null) {
if(current.data == value) {
return index;
}
index++;
current = current.next;
}
return -1;
}
public void add(int value) {
if(front == null) {
front = new ListNode(value);
} else {
ListNode current = front;
while( current.next != null) {
current = current.next;
}
current.next = new ListNode(value);
}
}
public void add(int index, int value) {
if(index == 0) {
front = new ListNode(value, front);
} else {
ListNode current = nodeAt(index-1);
current.next = new ListNode(value, current.next);
}
}
public void remove(int index) {
if(index == 0) {
front = front.next;
} else {
ListNode current = nodeAt(index-1);
current.next = current.next.next;
}
}
private ListNode nodeAt(int index) {
ListNode current = front;
for(int i=0; i<index; i++) {
current = current.next;
}
return current;
}
}
public class ListNode {
public int data;
public ListNode next;
public ListNode() {
this(0,null);
}
public ListNode(int data) {
this(data,null);
}
public ListNode(int data, ListNode next) {
this.data = data;
this.next = next;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment