Golang program to insert a node at the ith index node, when the index is at the nth index, i.e., out of bound in the linked list.



Examples

Example

 Live Demo

package main import "fmt" type Node struct {    value int    next *Node } func NewNode(value int, next *Node) *Node{    var n Node    n.value = value    n.next = next    return &n } func TraverseLinkedList(head *Node){    temp := head    for temp != nil {       fmt.Printf("%d ", temp.value)       temp = temp.next    }    fmt.Println() } func InsertNodeAtIthIndex(head *Node, index, data int) *Node{    if head == nil{       head = NewNode(data, nil)       return head    }    if index == 0{       newNode := NewNode(data, nil)       newNode.next = head       head = newNode       return head    }    i := 0    temp := head    preNode := temp    for temp != nil {       if i == index{          newNode := NewNode(data, nil)          preNode.next = newNode          newNode.next = temp          break       }       i++       preNode = temp       temp = temp.next    }    return head } func main(){    head := NewNode(30, NewNode(10, NewNode(40, NewNode(40, nil))))    fmt.Printf("Input Linked list is: ")    TraverseLinkedList(head)    index := 30    head = InsertNodeAtIthIndex(head, index, 15)    fmt.Printf("Inserting new node at %dth index, Linked List is: ", index)    TraverseLinkedList(head) }

Output

Input Linked list is: 30 10 40 40 Inserting new node at 30th index, Linked List is: 30 10 40 40
Updated on: 2021-03-18T12:12:31+05:30

128 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements