Insert node at middle of linked list in swift
Suppose we are inserted the following (1, 2, 3, 4, 5, 6, 7) node in a sequence. In this post are implement second approach.

import Foundation
// Swift 4 Program for
// Insert linked list element at middle position
// Linked list node
class LinkNode
{
var data: Int;
var next: LinkNode? ;
init(_ data: Int)
{
self.data = data;
self.next = nil;
}
}
class LinkedList
{
var head: LinkNode? ;
// Class constructors
init()
{
self.head = nil;
}
// Insert node in middle position
func insert(_ value: Int)
{
// Create a new node
let node: LinkNode? = LinkNode(value);
if (self.head == nil)
{
// First node
self.head = node;
}
else
{
var temp: LinkNode? = self.head;
var middle: LinkNode? = self.head;
// Find the middle node
while (temp!.next != nil &&
temp!.next!.next != nil)
{
temp = temp!.next!.next;
middle = middle!.next;
}
// add node
node!.next = middle!.next;
middle!.next = node;
}
}
// Display linked list element
func display()
{
if (self.head == nil)
{
return;
}
var temp: LinkNode? = self.head;
// iterating linked list elements
while (temp != nil)
{
print(temp!.data, terminator: " → ");
// Visit to next node
temp = temp!.next;
}
print("NULL");
}
static func main(_ args: [String])
{
let sll: LinkedList? = LinkedList();
// Add node
sll!.insert(1);
sll!.insert(2);
sll!.insert(3);
sll!.insert(4);
sll!.insert(5);
sll!.insert(6);
sll!.insert(7);
// 1 → 3 → 5 → 7 → 6 → 4 → 2 → NULL
sll!.display();
}
}
LinkedList.main([String]());
1 → 3 → 5 → 7 → 6 → 4 → 2 → NULL
Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.
New Comment