Golang program to insert a node at the ith index node, when the index is at the last position in the linked list.


Examples

Example

Approach to solve this problem

 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 := 3
   head = InsertNodeAtIthIndex(head, index, 35)
   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 3th index, Linked List is: 30 10 40 35 40

Updated on: 18-Mar-2021

72 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements