1
- // Linked List in Java. Written by Joe James.
2
- public class LinkedList {
3
- Node root ;
4
- int size ;
5
-
6
- public LinkedList () {
7
- root = new Node ();
8
- size = 0 ;
9
- }
10
-
11
- // Test code - main function
12
- public static void main (String [] args ) {
13
- LinkedList ll = new LinkedList ();
14
- System .out .println (ll .getSize ());
15
- ll .add (8 );
16
- System .out .println (ll .getSize ());
17
- ll .add (17 );
18
- ll .add (5 );
19
- ll .add (10 );
20
- System .out .println (ll .find (17 ).getData ());
21
- ll .remove (5 );
22
- System .out .println (ll .getSize ());
23
- System .out .println (ll .find (5 ));
24
- }
25
-
26
- public void setSize (int s ) {
27
- this .size = s ;
28
- }
29
-
30
- public int getSize () {
31
- return this .size ;
32
- }
33
-
34
- public Node add (int data ) {
35
- Node newNode = new Node (data , root );
36
- this .root = newNode ;
37
- this .size ++;
38
- return newNode ;
39
- }
40
-
41
- public Node find (int data ) {
42
- Node thisNode = this .root ;
43
-
44
- while (thisNode != null ) {
45
- if (thisNode .getData () == data )
46
- return thisNode ;
47
- thisNode = thisNode .getNextNode ();
48
- }
49
- return null ;
50
- }
51
-
52
- public boolean remove (int data ) {
53
- Node thisNode = this .root ;
54
- Node prevNode = null ;
55
-
56
- while (thisNode != null ) {
57
- if (thisNode .getData () == data ) {
58
- if (prevNode != null )
59
- prevNode .setNextNode (thisNode .getNextNode ());
60
- else
61
- this .root = null ;
62
- this .setSize (this .getSize ()-1 );
63
- return true ;
64
- }
65
- prevNode = thisNode ;
66
- thisNode = thisNode .getNextNode ();
67
- }
68
- return false ;
69
- }
70
-
71
- // Node class
72
- private class Node {
73
- private Node nextNode ;
74
- private int data ;
75
-
76
- // 0-arg constructor, 1-arg constructor, 2-arg constructor
77
- private Node () { }
78
-
79
- private Node (int val ) {
80
- data = val ;
81
- }
82
-
83
- private Node (int val , Node next ) {
84
- data = val ;
85
- nextNode = next ;
86
- }
87
-
88
- private void setData (int val ) {
89
- this .data = val ;
90
- }
91
-
92
- private int getData () {
93
- return this .data ;
94
- }
95
-
96
- private void setNextNode (Node n ) {
97
- this .nextNode = n ;
98
- }
99
-
100
- private Node getNextNode () {
101
- return this .nextNode ;
102
- }
103
- }
1
+ // Linked List in Java. Written by Joe James.
2
+ public class LinkedList {
3
+ Node root ;
4
+ int size ;
5
+
6
+ public LinkedList () {
7
+ root = new Node ();
8
+ size = 0 ;
9
+ }
10
+
11
+ // Test code - main function
12
+ public static void main (String [] args ) {
13
+ LinkedList ll = new LinkedList ();
14
+ System .out .println (ll .getSize ());
15
+ ll .add (8 );
16
+ System .out .println (ll .getSize ());
17
+ ll .add (17 );
18
+ ll .add (5 );
19
+ ll .add (10 );
20
+ System .out .println (ll .find (17 ).getData ());
21
+ ll .remove (5 );
22
+ System .out .println (ll .getSize ());
23
+ System .out .println (ll .find (5 ));
24
+ }
25
+
26
+ public void setSize (int s ) {
27
+ this .size = s ;
28
+ }
29
+
30
+ public int getSize () {
31
+ return this .size ;
32
+ }
33
+
34
+ public Node add (int data ) {
35
+ Node newNode = new Node (data , root );
36
+ this .root = newNode ;
37
+ this .size ++;
38
+ return newNode ;
39
+ }
40
+
41
+ public Node find (int data ) {
42
+ Node thisNode = this .root ;
43
+
44
+ while (thisNode != null ) {
45
+ if (thisNode .getData () == data )
46
+ return thisNode ;
47
+ thisNode = thisNode .getNextNode ();
48
+ }
49
+ return null ;
50
+ }
51
+
52
+ public boolean remove (int data ) {
53
+ Node thisNode = this .root ;
54
+ Node prevNode = null ;
55
+
56
+ while (thisNode != null ) {
57
+ if (thisNode .getData () == data ) {
58
+ if (prevNode != null )
59
+ prevNode .setNextNode (thisNode .getNextNode ());
60
+ else
61
+ this .root = null ;
62
+ this .setSize (this .getSize ()-1 );
63
+ return true ;
64
+ }
65
+ prevNode = thisNode ;
66
+ thisNode = thisNode .getNextNode ();
67
+ }
68
+ return false ;
69
+ }
70
+
71
+ // Node class
72
+ private class Node {
73
+ private Node nextNode ;
74
+ private int data ;
75
+
76
+ // 0-arg constructor, 1-arg constructor, 2-arg constructor
77
+ private Node () { }
78
+
79
+ private Node (int val ) {
80
+ data = val ;
81
+ }
82
+
83
+ private Node (int val , Node next ) {
84
+ data = val ;
85
+ nextNode = next ;
86
+ }
87
+
88
+ private void setData (int val ) {
89
+ this .data = val ;
90
+ }
91
+
92
+ private int getData () {
93
+ return this .data ;
94
+ }
95
+
96
+ private void setNextNode (Node n ) {
97
+ this .nextNode = n ;
98
+ }
99
+
100
+ private Node getNextNode () {
101
+ return this .nextNode ;
102
+ }
103
+ }
104
104
}
0 commit comments