Insert New Node After Kth Node in Linked List using Golang



Example

Add node 15 after 50((K is not in the linked list)) value node.

Approach to solve this problem

Step 1 − Define a method that accepts the head of a linked list.

Step 2 − If head == nil, return the head.

Step 3 − Iterate the given linked list.

Step 4 − If node value 50 is not found, return the head without adding any node.

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 AddAfterKthNode(head *Node, k , data int) *Node{
   // Insert after Kth node(K is not in the linked list).
   if head == nil{
      return head
   }
   temp := head
   for temp != nil{
      if temp.value == k{
         newNode := NewNode(data, nil)
         newNode.next = temp.next
         temp.next = newNode
         break
      }
      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)
   head = AddAfterKthNode(head, 50, 15)
   fmt.Printf("Adding node after %dth value node, Linked List is: ", 50)
   TraverseLinkedList(head)
}

Output

Input Linked list is: 30 10 40 40
Adding node after 50th value node, Linked List is: 30 10 40 40
Updated on: 2021-03-18T06:54:51+05:30

90 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements