1.<Functions for Single Linked Lists>2.function insertAtBeginning(value):3. newNode = Node(value)4. newNode.next = head5. head = newNode6.end procedure7.8.function insertAtEnd(value):9. newNode = Node(value)10. if head == null:11. head = newNode12. else:13. traverse to last node14. lastNode.next = newNode15.end procedure16.17.function insertAtIndex(index, value):18. if index == 0:19. insertAtBeginning(value)20. else:21. traverse to (index-1)th node22. newNode = Node(value)23. newNode.next = prev.next24. prev.next = newNode25.end procedure26.27.function deleteFromBeginning():28. if head != null:29. head = head.next30.end procedure31.32.function deleteFromEnd():33. if head == null:34. return35. if head.next == null:36. head = null37. else:38. traverse to second last node39. secondLast.next = null40.end procedure41.42.function deleteAtIndex(index):43. if index == 0:44. deleteFromBeginning()45. else:46. traverse to (index-1)th node47. prev.next = prev.next.next48.end procedure
Time Complexity
O(1) insert/delete at head, O(n) at index/tail
Space Complexity
O(n)