package com.interview.linklist; public class DoubleLinkList { public Node addNode(Node head,int data){ if(head == null){ head = Node.newNode(data); return head; } Node newNode = Node.newNode(data); Node current = head; while(current.next != null){ current = current.next; } current.next = newNode; newNode.before = current; return head; } public Node addAtFront(Node head, int data){ Node newNode = Node.newNode(data); if(head == null){ return newNode; } newNode.next = head; head.before = newNode; return newNode; } public void print(Node head){ while(head != null){ System.out.print(head.data + " "); head = head.next; } } public void printFrontBack(Node head){ Node prev = null; while(head != null){ System.out.print(head.data + " "); prev = head; head = head.next; } System.out.println(); while(prev != null){ System.out.print(prev.data + " "); prev = prev.before; } } public Node find(Node head, int data){ while(head != null){ if(head.data == data){ return head; } head = head.next; } return null; } public static void main(String args[]){ DoubleLinkList dll = new DoubleLinkList(); Node head = null; head = dll.addNode(head,1); head = dll.addNode(head,2); head = dll.addNode(head,3); head = dll.addNode(head,4); head = dll.addNode(head,5); dll.print(head); } }