Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit da1813e

Browse files
author
Ram swaroop
committed
linkedlist: middle node and clear() done
1 parent 2241912 commit da1813e

File tree

3 files changed

+57
-3
lines changed

3 files changed

+57
-3
lines changed

src/me/ramswaroop/Main.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,9 @@ public static void main(String[] args) {
102102
out.println("4. Remove at index");
103103
out.println("5. Remove item");
104104
out.println("6. Edit item");
105-
out.println("7. Print");
106-
out.println("8. Exit module");
105+
out.println("7. Delete LinkedList");
106+
out.println("8. Print");
107+
out.println("9. Exit module");
107108
k2 = Integer.parseInt(in.nextLine());
108109
int item, index;
109110
switch (k2) {
@@ -146,9 +147,14 @@ public static void main(String[] args) {
146147
singleLinkedList.printList();
147148
break;
148149
case 7:
150+
out.println("LinkedList deleted.");
151+
singleLinkedList.clear();
149152
singleLinkedList.printList();
150153
break;
151154
case 8:
155+
singleLinkedList.printList();
156+
break;
157+
case 9:
152158
continue chooseModule;
153159
default:
154160
out.println("Wrong choice!");

src/me/ramswaroop/common/SingleLinkedList.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,18 @@ public void addLast(E item) {
6161

6262
@Override
6363
public void clear() {
64-
64+
// Clearing all of the links between nodes is "unnecessary", but:
65+
// - helps a generational GC if the discarded nodes inhabit
66+
// more than one generation
67+
// - is sure to free memory even if there is a reachable Iterator
68+
for (SingleLinkedNode<E> node = head; node != null; ) {
69+
SingleLinkedNode<E> next = node.next;
70+
node.item = null;
71+
node.next = null;
72+
node = next;
73+
}
74+
head = null;
75+
size = 0;
6576
}
6677

6778
@Override
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package me.ramswaroop.linkedlists;
2+
3+
import me.ramswaroop.common.SingleLinkedList;
4+
import me.ramswaroop.common.SingleLinkedNode;
5+
6+
/**
7+
* Created by IntelliJ IDEA.
8+
*
9+
* @author: ramswaroop
10+
* @date: 6/18/15
11+
* @time: 10:34 PM
12+
*/
13+
public class MiddleNode<E> extends SingleLinkedList<E> {
14+
15+
public SingleLinkedNode<E> getMiddleNode(SingleLinkedNode<E> node) {
16+
SingleLinkedNode<E> slow = node;
17+
SingleLinkedNode<E> fast = node;
18+
while (fast != null && fast.next != null) {
19+
slow = slow.next;
20+
fast = fast.next.next;
21+
}
22+
return slow;
23+
}
24+
25+
public static void main(String a[]) {
26+
MiddleNode<Integer> linkedList = new MiddleNode<>();
27+
linkedList.add(11);
28+
linkedList.add(22);
29+
linkedList.add(33);
30+
linkedList.add(44);
31+
linkedList.add(55);
32+
linkedList.add(66);
33+
linkedList.add(77);
34+
linkedList.add(88);
35+
System.out.println(linkedList.getMiddleNode(linkedList.getNode(0)).item);
36+
}
37+
}

0 commit comments

Comments
 (0)