public static DoublyLinkedListNode SortedInsert(this DoublyLinkedListNode head, int data) { var newNode = new DoublyLinkedListNode(data); if (head == null) { return(newNode); } if (data < head.data) // Insert new node before head { newNode.next = head; head.prev = newNode; return(newNode); } else { DoublyLinkedListNode cur = head, prev = null; while (cur != null && cur.data < data) { prev = cur; cur = cur.next; } if (cur == null) { prev.next = newNode; newNode.prev = prev; } else { newNode.next = cur; newNode.prev = cur.prev; cur.prev.next = newNode; cur.prev = newNode; } } return(head); }
public DoublyLinkedList() { this.head = null; this.tail = null; }
public DoublyLinkedListNode(int nodeData) { this.data = nodeData; this.next = null; this.prev = null; }