Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.10 KB | None | 0 0
  1. class OrderedList<T : Comparable<T>> {
  2.     private var head: Node<T>? = null
  3.  
  4.     internal data class Node<T>(
  5.         var value: T,
  6.         var next: Node<T>? = null
  7.     )
  8.  
  9.     fun add(value: T) {
  10.         if (head == null) {
  11.             head = Node(value)
  12.         } else {
  13.             var currentNode = head
  14.             while (currentNode?.next != null && currentNode.next?.value!! < value) {
  15.                 currentNode = currentNode.next
  16.             }
  17.             currentNode?.next = Node(value, currentNode?.next)
  18.         }
  19.     }
  20.  
  21.     fun remove(value: T) {
  22.         var currentNode = head
  23.         while (currentNode != null) {
  24.             if (currentNode.next?.value == value) {
  25.                 currentNode.next = currentNode.next?.next
  26.                 return
  27.             }
  28.             currentNode = currentNode.next
  29.         }
  30.     }
  31.  
  32.     fun clear() {
  33.         var currentNode = head
  34.         var nextNode: Node<T>?
  35.         while (currentNode != null) {
  36.             nextNode = currentNode.next
  37.             currentNode.next = null
  38.             currentNode = nextNode
  39.         }
  40.     }
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement