leetcode-203-移除链表元素

package main

import "fmt"

type ListNode struct {
	Val int
	Next *ListNode
}

// 创建一个虚拟头节点

func removeElements(head *ListNode, val int) *ListNode {
	// 创建一个虚拟头节点
	var p = new(ListNode)
	p.Next = head

	q := p
	for p != nil && p.Next != nil {
		if p.Next.Val == val{
			p.Next = p.Next.Next
		}else{
			p = p.Next
		}
	}
	return q.Next
}

func main() {
	var head ListNode
	head.Val = 100

	// 尾部插入节点
	var tail = &head
	for i := 0; i < 10; i++{
		var node = ListNode{
			Val: i,
		}
		tail.Next = &node
		tail = &node
	}

	// 打印所有节点
	//trans(&head)

	// 移除链表元素
	node := removeElements(&head, 100)
	
	// 查看移除后的所有节点,确实100这个节点已经没有了
	trans(node)

}

func trans(head *ListNode) {
	for head != nil {
		fmt.Println(*head)
		head = head.Next
	}
}

posted @ 2022-05-07 17:04  专职  阅读(14)  评论(0编辑  收藏  举报