1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| package main
import "fmt"
type ListNode struct { Val int Next *ListNode }
var list *ListNode
func createList(arr []int) { head := &ListNode{} cur := head for _, v := range arr { cur.Next = &ListNode{Val: v} cur = cur.Next } list = head.Next }
func printList() { head := list for head != nil { fmt.Printf("%d ", head.Val) head = head.Next } fmt.Println() }
func insertListIndex(index, val int) { head := list for i := 0; i < index-1; i++ { head = head.Next } head.Next = &ListNode{Val: val, Next: head.Next} }
func deleteListIndex(index int) { head := list for i := 0; i < index-1; i++ { head = head.Next } head.Next = head.Next.Next }
func insertListLast(val int) { head := list for head.Next != nil { head = head.Next } head.Next = &ListNode{Val: val} }
func insertListHead(val int) { head := list head = &ListNode{Val: val, Next: head} list = head }
func updateListIndex(index, val int) { head := list for i := 0; i < index; i++ { head = head.Next } head.Val = val }
func main() { arr := []int{1, 2, 3, 4, 5, 7, 6} createList(arr) printList() insertListIndex(4, 10) printList() deleteListIndex(4) printList() insertListLast(100) printList() insertListHead(1000) printList() updateListIndex(4, 10000) printList() }
|