public void AddToHead(int value) { var newNode = new SNode(value); if (head == null) { head = newNode; return; } newNode.Next = head; head = newNode; }
public void Print() { if (head == null) { return; } SNode current = head; while (current != null) { System.Console.WriteLine(current.Value); current = current.Next; } }
public IEnumerator <int> GetEnumerator() { if (head == null) { Enumerable.Empty <int>(); } else { SNode current = head; while (current != null) { yield return(current.Value); current = current.Next; } } }
public void AddToTail(int value) { var newNode = new SNode(value); if (head == null) { head = newNode; return; } SNode current = head; while (current.Next != null) { current = current.Next; } current.Next = newNode; }
public bool Find(int value) { if (head == null) { return(false); } SNode current = head; while (current != null) { if (current.Value == value) { return(true); } current = current.Next; } return(false); }
public void Reverse() { if (head == null) { return; } SNode p = null; SNode c = head; SNode n = head.Next; while (c.Next != null) { c.Next = p; p = c; c = n; n = n.Next; } // Reverse last node and make it head. c.Next = p; head = c; }
public void Clear() { head = null; }