In the past we have already covered reversing a Linked List via Recursion. Today we will discuss how we can reverse a Linked List using Iterative method.
Algorithm
- Take three pointer currentNode,nextNode and previousNode
- initialize currentNode to head of the linked List
- iterate over the linked list until currentNode is equal to null
- nextNode to previousNode
- previousNode to currentNode
- In the loop change currentNode to next Node
- return previousNode
Code
public Node<T> ReverseIterative() { Node<T> currentNode = this.head; Node<T> previousNode, nextNode; previousNode = nextNode = null; while (currentNode != null) { nextNode = currentNode.Next; currentNode.Next = previousNode; previousNode = currentNode; currentNode = nextNode; } return previousNode; }