Syntax error Golang program to delete the ith index node, when index is the out of range in the linked list.

Golang program to delete the ith index node, when index is the out of range in the linked list.



Example

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 − When index == 0, then return head.next

Step 4 − Else, iterate the given linked list from its head.

Step 5 − If index i matches with the given index (to be deleted), then delete that node.next, break the loop.

Step 6 − Return, at the end of the loop.

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 DeleteKthIndexNode(head *Node, index int) *Node{
   if head == nil{
      return head
   }
   if index == 0{
      head = head.next
      return head
   }
   i := 1
   temp := head
   for temp != nil{
      if i == index{
         temp.next = temp.next.next
      }
      i++
      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 := 5
   head = DeleteKthIndexNode(head, index)
   fmt.Printf("After Deletion of %dth index node, Linked List is: ", index)
   TraverseLinkedList(head)
}

Output

Input Linked list is: 30 10 40 40
After Deletion of 5th index node, Linked List is: 30 10 40 40
Updated on: 2021-03-18T11:57:21+05:30

195 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements