package  single_listimport  ( "strconv" 
) type  ListNode struct  { Val int Next *  ListNode
} 
func  ( l * ListNode)  String ( )  string  { var  res string for  l !=  nil  { res +=  strconv. Itoa ( l. Val) res +=  "->" l =  l. Next} res +=  "nil" return  res
} func  ( list * ListNode)  Add_single_list ( l * ListNode,  Val int )  * ListNode { if  l. Next ==  nil  &&  l. Val ==  0  { l. Val =  Valreturn  l} temp :=  new ( ListNode) temp. Val =  Valtemp. Next =  nil for  l. Next !=  nil  { l =  l. Next} l. Next =  tempreturn  l
} 
package  mainimport  ( .  "xxxxxxxxx/single_list" "fmt" 
) func  main ( )  { list :=  new ( ListNode) list. Add_single_list ( list,  1 ) list. Add_single_list ( list,  4 ) list. Add_single_list ( list,  3 ) list. Add_single_list ( list,  2 ) list. Add_single_list ( list,  5 ) list. Add_single_list ( list,  2 ) fmt. Println ( list) 
}