Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class OrderedList<T : Comparable<T>> {
- private var head: Node<T>? = null
- internal data class Node<T>(
- var value: T,
- var next: Node<T>? = null
- )
- fun add(value: T) {
- if (head == null) {
- head = Node(value)
- } else {
- var currentNode = head
- while (currentNode?.next != null && currentNode.next?.value!! < value) {
- currentNode = currentNode.next
- }
- currentNode?.next = Node(value, currentNode?.next)
- }
- }
- fun remove(value: T) {
- var currentNode = head
- while (currentNode != null) {
- if (currentNode.next?.value == value) {
- currentNode.next = currentNode.next?.next
- return
- }
- currentNode = currentNode.next
- }
- }
- fun clear() {
- var currentNode = head
- var nextNode: Node<T>?
- while (currentNode != null) {
- nextNode = currentNode.next
- currentNode.next = null
- currentNode = nextNode
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement