# Anticlockwise spiral conversion of doubly linked list in golang

Go program for Anticlockwise spiral conversion of doubly linked list. Here problem description and other solutions.

``````package main
import "fmt"
// Go program for
// Convert a doubly linked list anticlockwise spiral form

// This is Linked List Node
data int
}
data,
nil,
nil,
}
}
}
nil,
nil,
}
}
// Insert new node at end position
// Create a node
this.tail = node
return
}
// Add node at last position
this.tail.next = node
node.prev = this.tail
this.tail = node
}
// Display node element of doubly linked list
} else {
// Get first node of linked list
for (temp != nil) {
// Display node value
fmt.Print("  ", temp.data)
// Visit to next node
temp = temp.next
}
// Get last node of linked list
temp = this.tail
for (temp != nil) {
// Display node value
fmt.Print("  ", temp.data)
// Visit to prev node
temp = temp.prev
}
}
}
return
}
var last * LinkNode = this.tail
var auxiliary * LinkNode = nil
var temp * LinkNode = nil
var back * LinkNode = nil
for (current != nil && last != nil) {
if current == last {
current.next = nil
current.prev = back
this.tail = current
// Set new last node
return
} else if current.next == last {
current.next = nil
current.prev = last
last.next = current
last.prev = back
// Set new last node
this.tail = current
return
}
auxiliary = current.next
temp = last.prev
current.prev = last
last.next = current
current.next = temp
last.prev = back
back = current
current = auxiliary
last = temp
}
}
func main() {
// Insert following linked list nodes
dll.insert(1)
dll.insert(2)
dll.insert(3)
dll.insert(4)
dll.insert(5)
dll.insert(6)
dll.insert(7)
dll.insert(8)
dll.insert(9)
fmt.Println("\nBefore anticlockwise spiral conversion")
// Display all node
dll.display()
fmt.Println("\nAfter anticlockwise spiral conversion")
dll.spiralTransform()
dll.display()
}``````

Output

``````Before anticlockwise spiral conversion
Linked List Head to Tail :  1  2  3  4  5  6  7  8  9
Linked List Tail to Head :  9  8  7  6  5  4  3  2  1
After anticlockwise spiral conversion
Linked List Head to Tail :  9  1  8  2  7  3  6  4  5
Linked List Tail to Head :  5  4  6  3  7  2  8  1  9``````

## Comment

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.