题解 | #【模板】链表#
【模板】链表
http://www.nowcoder.com/practice/97dc1ac2311046618fd19960041e3c6f
package main
import "fmt"
type ListNode struct {
Val int
Next *ListNode
}
func main() {
var n int
fmt.Scan(&n)
var opt string
var idx, val int
hair := &ListNode{Next: nil}
for i := 0; i < n; i++ {
fmt.Scan(&opt)
if opt == "insert" {
fmt.Scan(&idx, &val)
node := &ListNode{Val: val}
cur := hair
flag := true
for cur.Next != nil {
if cur.Next.Val == idx {
node.Next = cur.Next
cur.Next = node
flag = false
break
}
cur = cur.Next
}
if flag {
cur.Next = node
node.Next = nil
}
} else {
fmt.Scan(&val)
node := hair
for node.Next != nil {
if node.Next.Val == val {
tmp := node.Next.Next
node.Next = tmp
break
}
node = node.Next
}
}
}
ans := hair.Next
if ans == nil {
fmt.Println("NULL")
return
}
if ans != nil {
fmt.Print(ans.Val)
ans = ans.Next
}
for ans != nil {
fmt.Print(" ", ans.Val)
ans = ans.Next
}
}