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
|
package main
import "fmt"
type ListNode struct { Val int Next *ListNode }
func (head *ListNode,val int) *ListNode { if head == nil { head = new(ListNode) head.Val = val }else{ tmp := head
for tmp.Next!=nil { tmp = tmp.Next } node := new(ListNode) node.Val = val tmp.Next = node } return head }
func removeElements(head *ListNode, val int) *ListNode { if head == nil{ return nil } current:=head prev := head
for current != nil { if current.Val == val { if current == head{ prev = current.Next head = prev }else{ prev.Next = current.Next } }else{ prev = current } current = current.Next } return head }
func printList(head *ListNode) { for head != nil { if head.Next!=nil { fmt.Printf("%d -> ", head.Val) }else{ fmt.Println(head.Val) } head = head.Next } }
func main(){ nums := []int{1,2,2,1} var head *ListNode for _,v := range nums { head = insertNode(head, v) } printList(head) head=removeElements(head, 2) printList(head) }
|
近期评论