题解 | #【模板】链表#

【模板】链表

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
	}
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务