|
1 | 1 | package com.company.DataStructures; |
2 | 2 |
|
3 | 3 | /* |
4 | | -* Linked List: |
5 | | -* Random access is not simple like the arrays |
6 | | -* Linked List has unlimited size. It depending your memory. |
7 | | -* |
8 | | -* Inserting to head = o(1) |
9 | | -* Inserting to end = o(1) |
10 | | -* Inserting to given index = o(n) |
11 | | -* Deleting given item = o(n) |
12 | | -* Reversing the list = o(n) |
13 | | -* Searching an item = o(n) |
14 | | -* |
15 | | -*/ |
| 4 | + * Linked List: |
| 5 | + * Random access is not simple like the arrays |
| 6 | + * Linked List has unlimited size. It depending your memory. |
| 7 | + * |
| 8 | + * Inserting to head = o(1) |
| 9 | + * Inserting to end = o(1) |
| 10 | + * Inserting to given index = o(n) |
| 11 | + * Deleting given item = o(n) |
| 12 | + * Reversing the list = o(n) |
| 13 | + * Searching an item = o(n) |
| 14 | + * |
| 15 | + */ |
16 | 16 |
|
17 | 17 | public class LinkedList { |
18 | 18 |
|
19 | | - class Node{ |
20 | | - int val; |
21 | | - Node next; |
22 | | - |
23 | | - |
24 | | - public Node(int val) { |
25 | | - this.val = val; |
26 | | - next=null; |
27 | | - } |
28 | | - |
29 | | - } |
30 | | - |
31 | | - Node root; |
32 | | - Node tail; |
33 | | - |
| 19 | + Node root; |
| 20 | + Node tail; |
34 | 21 | public LinkedList() { |
35 | | - this.root =null; |
| 22 | + this.root = null; |
36 | 23 | this.tail = null; |
37 | 24 | } |
38 | 25 |
|
39 | 26 | //inserting data to end of list. |
40 | | - public void insertToEnd(int val){ |
41 | | - if(root ==null){ |
| 27 | + public void insertToEnd(int val) { |
| 28 | + if (root == null) { |
42 | 29 | root = new Node(val); |
43 | | - tail =root; |
44 | | - tail.next=null; |
45 | | - } |
46 | | - |
47 | | - else { |
48 | | - tail.next= new Node(val); |
49 | | - tail =tail.next; |
50 | | - tail.next=null; |
| 30 | + tail = root; |
| 31 | + tail.next = null; |
| 32 | + } else { |
| 33 | + tail.next = new Node(val); |
| 34 | + tail = tail.next; |
| 35 | + tail.next = null; |
51 | 36 |
|
52 | 37 | } |
53 | 38 | } |
54 | 39 |
|
55 | 40 | //inserting data to head of list. |
56 | | - public void insertToHead(int val){ |
| 41 | + public void insertToHead(int val) { |
57 | 42 | Node temp = new Node(val); |
58 | | - if(root==null){ |
59 | | - root=temp; |
60 | | - tail=root; |
61 | | - tail.next=null; |
62 | | - } |
63 | | - |
64 | | - else{ |
65 | | - temp.next=root; |
66 | | - root=temp; |
| 43 | + if (root == null) { |
| 44 | + root = temp; |
| 45 | + tail = root; |
| 46 | + tail.next = null; |
| 47 | + } else { |
| 48 | + temp.next = root; |
| 49 | + root = temp; |
67 | 50 | } |
68 | 51 |
|
69 | 52 | } |
70 | 53 |
|
71 | 54 | //inserting data to given index; |
72 | | - public void insertToIndex(int index, int val){ |
| 55 | + public void insertToIndex(int index, int val) { |
73 | 56 | Node temp = new Node(val); |
74 | 57 | Node iter = root; |
75 | 58 | int len = lenOfList(); |
76 | 59 |
|
77 | | - if(index<0 || index>len) |
78 | | - System.out.println("You cannot insert to given position: "+index); |
| 60 | + if (index < 0 || index > len) |
| 61 | + System.out.println("You cannot insert to given position: " + index); |
79 | 62 |
|
80 | | - else if(index==0) |
| 63 | + else if (index == 0) |
81 | 64 | insertToHead(val); |
82 | 65 |
|
83 | | - else if(index<=len) { |
84 | | - for (int i = 0; i < index-1; i++) |
| 66 | + else if (index <= len) { |
| 67 | + for (int i = 0; i < index - 1; i++) |
85 | 68 | iter = iter.next; |
86 | 69 | temp.next = iter.next; |
87 | 70 | iter.next = temp; |
88 | 71 | } |
89 | 72 | } |
90 | 73 |
|
91 | 74 | //returns length of the list. |
92 | | - public int lenOfList(){ |
| 75 | + public int lenOfList() { |
93 | 76 | Node iter = root; |
94 | | - int count =0; |
95 | | - while(iter!=null){ |
| 77 | + int count = 0; |
| 78 | + while (iter != null) { |
96 | 79 | count++; |
97 | | - iter=iter.next; |
| 80 | + iter = iter.next; |
98 | 81 | } |
99 | 82 | return count; |
100 | 83 | } |
101 | 84 |
|
102 | 85 | //printing list |
103 | | - public void print(){ |
| 86 | + public void print() { |
104 | 87 |
|
105 | | - Node iter = root; |
| 88 | + Node iter = root; |
106 | 89 |
|
107 | | - while(iter!=null){ |
| 90 | + while (iter != null) { |
108 | 91 | System.out.println(iter.val); |
109 | | - iter=iter.next; |
| 92 | + iter = iter.next; |
110 | 93 | } |
111 | 94 |
|
112 | 95 | } |
113 | 96 |
|
114 | 97 | //deleting item |
115 | | - public void deleteItem(int val){ |
116 | | - boolean isHere =false; |
| 98 | + public void deleteItem(int val) { |
| 99 | + boolean isHere = false; |
117 | 100 | Node iter = root; |
118 | 101 | Node temp = null; |
119 | | - if(root.val ==val){ |
120 | | - temp=root; |
121 | | - root=root.next; |
122 | | - temp=null; |
| 102 | + if (root.val == val) { |
| 103 | + temp = root; |
| 104 | + root = root.next; |
| 105 | + temp = null; |
123 | 106 | isHere = true; |
124 | 107 | return; |
125 | 108 | } |
126 | 109 |
|
127 | | - while(iter.next != null){ |
128 | | - if(iter.next!= null && iter.next.val == val){ |
| 110 | + while (iter.next != null) { |
| 111 | + if (iter.next != null && iter.next.val == val) { |
129 | 112 | temp = iter.next; |
130 | | - iter.next=temp.next; |
131 | | - temp=null; |
132 | | - isHere =true; |
| 113 | + iter.next = temp.next; |
| 114 | + temp = null; |
| 115 | + isHere = true; |
133 | 116 | break; |
134 | 117 | } |
135 | | - iter=iter.next; |
| 118 | + iter = iter.next; |
136 | 119 | } |
137 | | - if(!isHere) |
138 | | - System.out.println("Given item is not element of the list."); |
139 | | - |
| 120 | + if (!isHere) |
| 121 | + System.out.println("Given item is not element of the list."); |
140 | 122 |
|
141 | 123 |
|
142 | 124 | } |
143 | 125 |
|
144 | 126 | //reverse the list |
145 | | - public void reverseList(){ |
146 | | - LinkedList reverseList =new LinkedList(); |
147 | | - Node iter= root; |
| 127 | + public void reverseList() { |
| 128 | + LinkedList reverseList = new LinkedList(); |
| 129 | + Node iter = root; |
148 | 130 |
|
149 | | - while(iter!=null){ |
150 | | - reverseList.insertToHead(iter.val); |
151 | | - iter=iter.next; |
152 | | - } |
| 131 | + while (iter != null) { |
| 132 | + reverseList.insertToHead(iter.val); |
| 133 | + iter = iter.next; |
| 134 | + } |
153 | 135 |
|
154 | | - root= reverseList.root; |
155 | | - tail = reverseList.tail; |
| 136 | + root = reverseList.root; |
| 137 | + tail = reverseList.tail; |
156 | 138 | } |
157 | 139 |
|
158 | 140 | //if the given value exists in the list it returns true else it's false |
159 | | - public boolean isExists(int val){ |
160 | | - Node iter =root; |
161 | | - boolean result =false; |
| 141 | + public boolean isExists(int val) { |
| 142 | + Node iter = root; |
| 143 | + boolean result = false; |
162 | 144 |
|
163 | | - while(iter!= null){ |
164 | | - if(iter.val == val){ |
| 145 | + while (iter != null) { |
| 146 | + if (iter.val == val) { |
165 | 147 | result = true; |
166 | 148 | break; |
167 | 149 | } |
168 | | - iter=iter.next; |
| 150 | + iter = iter.next; |
169 | 151 |
|
170 | 152 | } |
171 | 153 |
|
172 | 154 | return result; |
173 | 155 | } |
174 | 156 |
|
| 157 | + class Node { |
| 158 | + int val; |
| 159 | + Node next; |
175 | 160 |
|
176 | 161 |
|
| 162 | + public Node(int val) { |
| 163 | + this.val = val; |
| 164 | + next = null; |
| 165 | + } |
177 | 166 |
|
178 | | - |
| 167 | + } |
179 | 168 |
|
180 | 169 |
|
181 | 170 | } |
0 commit comments