Skip to content

Commit e2b0010

Browse files
committed
Working DoubllyLinkedList
1 parent b5bce0a commit e2b0010

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Algos/src/linkedList/DoubllyLinkedList.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public ListNode InsertNodeAt(int data, int pos) {
2929
if (pos == 1) { // insert at beginning
3030
ListNode newNode = CreateNewNode(data);
3131
newNode.setNext(headNode);
32-
newNode.setPrevious(headNode.getprevious());
32+
headNode.setPrevious(newNode);
3333
headNode = newNode;
3434
} else { // insert in middle or end
3535
int currentPos = 1;
@@ -42,8 +42,11 @@ public ListNode InsertNodeAt(int data, int pos) {
4242
//System.out.println("CurrentNode Node " +previousNode.getData() + " ,Current Positon" +currentPos);
4343
ListNode tempNode = previousNode.getNext();
4444
previousNode.setNext(CreateNewNode(data));
45+
previousNode.getNext().setPrevious(previousNode);
46+
if (tempNode!=null)
47+
tempNode.setPrevious(previousNode.getNext());
4548
previousNode.getNext().setNext(tempNode);
46-
49+
4750
}
4851

4952
noOfNodes++;
@@ -60,7 +63,7 @@ public ListNode CreateNewNode(int data) {
6063
public int length() {
6164
int length = 0;
6265
ListNode currentNode = headNode;
63-
while (currentNode != null){
66+
while ((currentNode != null)){
6467
currentNode = currentNode.getNext();
6568
length++;
6669
}
@@ -93,7 +96,7 @@ public ListNode NodeAt(int pos) {
9396
public void PrintLinkedList() {
9497
ListNode currentNode = headNode;
9598
System.out.print(" Linked List:: ");
96-
while (currentNode != null){
99+
while ((currentNode != null)){
97100
System.out.print(currentNode.getData() + " ");
98101
currentNode = currentNode.getNext();
99102
}
@@ -156,6 +159,7 @@ public ListNode RemoveNodeAt(int pos ) {
156159
if (pos == 1) { // insert at beginning
157160
ListNode currentNode = headNode;
158161
headNode = headNode.getNext();
162+
headNode.setPrevious(null);
159163
currentNode = null;
160164
} else { // insert in middle or end
161165
int currentPos = 1;
@@ -168,6 +172,8 @@ public ListNode RemoveNodeAt(int pos ) {
168172
//System.out.println("CurrentNode Node " +previousNode.getData() + " ,Current Positon" +currentPos);
169173
ListNode tempNode = previousNode.getNext();
170174
previousNode.setNext(previousNode.getNext().getNext());
175+
if (previousNode.getNext()!=null)
176+
previousNode.getNext().setPrevious(previousNode);
171177
tempNode = null;
172178

173179
}

0 commit comments

Comments
 (0)