// reverse given list func reverseList(l ds.LinkedList) ds.LinkedList { temp := l.Copy() reversed_list := ds.LinkedList{} head := temp.Head() current_node := head var prev_node *ds.Node for { if current_node != nil { next_node := current_node.Next() current_node.SetNext(prev_node) prev_node = current_node current_node = next_node } else { reversed_list.SetHead(prev_node) break } } return reversed_list }